Lucia

Centre de Recherche en Aeronautique · IBM ESS · Fully Reproducible

System Purpose

Question asked

Please describe the purpose and general usage of the submitted system.  This would include the types of typical applications it supports (e.g., defense applications, molecular dynamics, benchmarking, system test, systems research), and the general use and purpose of the data generated by the applications running on it.

Cenaero is a private non-profit applied research center located in the Walloon region of Belgium. It is mainly active in the fields of aeronautical design, spacecrafts, manufacturing processes, and buildings and smart cities.

Given the nature of its core activities, Cenaero hosts and operates supercomputers since its inception in 2002. Since 2013 Cenaero has been appointed by the Walloon Region to operate the regional (tier-1) supercomputer, Lucia is its latest iteration.

Lucia supports a wide variety of applications, ranging from Cenaero’s core business in aeronautics to academic and industrial partner’s research, this includes computational fluid dynamics, physical sciences, mechanical engineering, mathematics, materials engineering, chemical sciences, civil engineering, earth and related environmental sciences, biological sciences, computer and information science, artificial intelligence and machine learning.

Availability

Question asked

Please provide the deployment timeframe of the submitted system, or for on-demand cloud systems, the general period over which it is deployed and destroyed.

Please describe the availability of the system to users and who are its set of most regular users.

Lucia was deployed in 2022 and entered full production in August 2023, it is expected to remain in production for at least 5 years.

Lucia’s computing infrastructure is available to researchers of the Fédération Wallonie-Bruxelles, universities and research centers, but also to private companies according to the applicable agreement with the Walloon Region which supports the project.

Storage System Software

Question asked

How is this storage software available? (e.g., commercially, open-source, not publicly available) Note that if the storage software is not open-source or commercially available, then a general description would be requested, but this would limit the submission’s reproducibility score.

Can anyone download/purchase this software?

List either product webpage or open-source repo of the exact software used in IO500.

Give any and all additional details of this specific storage deployment: (e.g., type of storage server product such IBM ESS or DDN SFA400X2, use of Ext4 or some other file system on each storage node, dual connected storage media to storage servers).

Lucia’s storage system is based on a mix of IBM ESS 3200 (4) and IBM ESS 5000 (2) appliances, and it is using IBM Storage Scale filesystem (GPFS) version 5.1, making a single filesystem of about 3.2PiB, divided into multiple filesets with different ILM policies depending on their use (home, scratch, projects, common software repository, etc.).

Runtime Environment

Question asked

State here that you provided all scripts/documentation that would allow someone else to reproduce your environment and attempt to achieve a similar IO500 score as the submitted system.

NOTE: provide all files/documentation/scripts that would enable a user to build your environment and deploy the custom scripts, software, or config files once they have obtained the appropriate storage system hardware and software. These may be included into the io500.tgz or into the extraCodes upload on the submission form.

Several examples include:

  • Commands used to set striping information (either for the entire system or for particular directories)
  • File system config and tuning information (or a reason why this is not available due to lack of root access, etc) on each node type (e.g., non-default config parameters on all three types of Lustre nodes: MDS, OSS, and client)
  • Any additional scripts utilized that impact IO500 execution beyond the io500 config file. For example, with IBM Spectrum Scale, the output of mmlsconfig, mmlscluster, mmlsfs, and mmlsfileset commands (and possibly even a dump of the configuration if possible). Each file system probably has similar type of config/tuning information that would need to be shared for a user to fully reproduce the environment.

4x IBM ESS 3200 appliances, making the “flash” pool, with about 200TiB total net capacity on NVMe SSD.

2x IBM ESS 5000 appliance, making the “capacitive” pool, with about 2.97PiB total net capacity on NL-SAS HDD.

The IO500 benchmark was run on a dedicated fileset that only relied on the flash pool, no HDD were harmed running the benchmark.

As the benchmark was performed during a short maintenance window of the system and the flash pool was full of production data, we’ve had to clear it out using ILM policies prior to running the benchmark and make sure at least 60TiB were free.

The appliances and filesystem configuration weren’t modified from their production settings, the mmlscluster, mmlsconfig, mmlsfs and mmlsfileset information are included in the io500.tgz

Fault Tolerance Mechanisms

Question asked

Does your system have a single point of failure as defined by “Definition 7” of a Production System? Please describe all mechanisms that provide fault tolerance for the submitted storage system. Be specific to your submission, not general storage system capabilities.

  • Power (For example, can power failure of a node or rack bring down the storage system?)
  • Networking (For example, can failure of a single NIC bring down the storage system? Remember that any networking failure that brings down multiple nodes is acceptable)
  • Inter storage data and metadata server (For example, what type of data protection mechanism does the storage system use to keep operating during node failures, e.g., active-active servers, client-directed RAID, declustered RAID, erasure-coding, 3-way replication)
  • Intra storage data and metadata server storage media (For example, how does the storage eysstem protect against fiailure of a single storage device within a node, e.g., raid5)

Please list any additional information needed to determine whether this system has a single point of failure.

The storage racks are equipped with 2 PDU (1 on direct feed + 1 on UPS), the storage subsystems have redundant PSU, each PSU is connected to a different PDU, as a consequence the failure of a PSU, PDU or the UPS would not bring down the storage system.

The IBM ESS appliances are also dual controllers, each controller has 2 dual port NIC and each NIC is connected to 2 different switches, allowing the storage to remain available in case of failure of a controller, NIC, cable, or switch.

The storage uses IBM Storage Scale RAID configured in 8+2, with 2 spare disks per disk enclosure.

Execution

Question asked

Please provide a description of how the IO500 benchmark was executed, e.g., via system scheduler (e.g., SLURM) to run a job on the compute cluster, which initially ran a setup process to configure the client and file system, and then started the full benchmark.

During the IO500 benchmark execution was the system entirely dedicated to running the benchmark or were there other jobs running in the same cluster and storage system?

The benchmark was executed during a maintenance window of the supercomputer, so no other jobs were running at the same time, and the system and storage were entirely dedicated to running the benchmark.

The benchmark was submitted via Slurm, with the attached io500_256nodes.sbatch submission script, which basically only loaded the OpenMPI 4.1.3 environment module and executed the io500.sh script (only modified variables were io500_mpirun="mpirun" and io500_mpiargs="--mca pml ucx") with the cenaero_256nodes.ini config file.

Caching

Question asked

Please describe all caching mechanisms in client/server that were utilized during the IO500 run. This could include caching in any storage medium (e.g., SSD, RAM).

A few examples would include:

  • Client data/metadata caching (in Linux page cache or in other memory cache)
  • Client side NVMe read-only data cache
  • Storage server metadata/data caching in RAM
  • Storage controller caching
  • RAID card caching

Besides the GPFS pagepool on clients and servers, no other specific cache was used, see complete pagepool and prefetch configuration in attached mmlsconfig-compute (client nodes) and mmlsconfig-cluster (server nodes) files.

Data Source

Question asked

Is the submitted system a stand-alone storage system or an acceleration layer in front of another storage system that is the source of truth for all application data? This question relates to whether the submitted system is a burst buffer layered on primary storage or primary storage itself.

The submitted system is a stand alone storage system with no burst-buffer.

Trust

Question asked

Please describe any steps taken to ensure that the results are trustworthy.

  • Did you run the benchmark multiple times and get similar scores?
  • Did you validate the score is below the physical capabilities of the deployed hardware?
  • How did you validate that the storage system follows the IO500 rules regarding persistence, which states, "All data must be written to persistent storage within the measured time for the individual benchmark, e.g. if a file system caches data, it must ensure that data is persistently stored before acknowledging the close"?

Multiple runs were performed on 2 different maintenance windows, first using ISC23 version in September 2023 and the the SC23 version in February 2024, we kept the highest score from February 2024 though we got a slightly higher score in September 2023:

2023.09.04-20.15.30/result_summary.txt:[SCORE ] Bandwidth 54.978741 GiB/s : IOPS 254.992284 kiops : TOTAL 118.402512
2023.09.04-22.00.38/result_summary.txt:[SCORE ] Bandwidth 55.917439 GiB/s : IOPS 235.609908 kiops : TOTAL 114.781108
2024.02.19-17.22.47/result_summary.txt:[SCORE ] Bandwidth 54.117079 GiB/s : IOPS 242.599409 kiops : TOTAL 114.580851
2024.02.19-18.30.23/result_summary.txt:[SCORE ] Bandwidth 52.521450 GiB/s : IOPS 237.905111 kiops : TOTAL 111.781579
2024.02.19-19.46.22/result_summary.txt:[SCORE ] Bandwidth 54.740990 GiB/s : IOPS 241.828559 kiops : TOTAL 115.056224

We validated that the results of the benchmark are within the physical capabilities of the system.

Data was persistently stored on the system. Moreover interrupting the benchmark would leave millions of files on the fileset, at that point it was faster to destroy/recreate the fileset than trying to delete the files.