NERSCPowering Scientific Discovery Since 1974

mdtest

Description

mdtest is a program that measures performance of various metadata operations. It uses MPI to coordinate the operations and to collect the results.   The code is composed of one C file, mdtest.c.

Download

Download the mdtest-1.8.4.tar file.

How to Build

MPI and gmake are required in order to build the code. 

To build the code, un-tar the archive, cd to the src directory (which will be named “mdtest-<version>” and type “gmake.”  The resulting executable is in the current working directory. You may also use

“make clean” in the highest level directory to remove dependent files. 

How to Run

When running mdtest you specify the number of files each process will create, not the total number of files to create.

The exact invocation of the code depends on your MPI implementation. The code should be run with something like:

aprun –n <#pes> -N <#pes-per-node> ./mdtest -n <1048576/#pes> -d <path-to-pfs>/<nn_shared-dir>/ -F -C -T -r -N <#pes-per-node>

This command will execute mdtest with the number of processes you specify, each creating its share of the required 1,048,576 files. All files will be created in a single directory, <path-to-pfs>/<nn_shared-dir>. The file create, stat, and deletion portions will be timed. Note well the -d option and its argument. This is the directory in which the test's files are created; this argument MUST BE A FULL PATH.

To have each task to write files in its own directory, add the -u switch.

aprun –n <#pes> -N <#pes-per-node> ./mdtest -n <1048576/#pes> -d <path-to-pfs>/<nn_unique-dir>/ -F -C -T -r -N <#pes-per-node> -u

There is a requirement to do N-to-1 tests involving N processes and a single file. The command for this test is:

aprun –n <#pes> -N <#pes-per-node> ./mdtest –S -C -T -r -n 1 -d <path-to-pfs>/<n1_shared-dir>/ -F

This command will execute mdtest with the number of processes you specify, each creating the same 1 file per test for a total of 1 file. The file is shared (-S), and will be created in single directory, <path-to-pfs>/<n1_shared-dir>. The file create, stat, and deletion portions will be timed. Note well the -d option and its argument. This is the directory in which the test's files are created; this argument MUST BE A FULL PATH.

Required Runs

Run Rules

There may be additional run rules in the README files accompanying the benchmark.

The intent of this benchmark is to measure system performance for file metadata operations that access disk. Because it is impractical to fully capture and represent within a benchmark the actual data sizes for I/O operations carried out by the users, the benchmarks utilize smaller working set sizes; however, since disk I/O remains the rate-limiting portion of the I/O workload, the benchmarks must be run in such a way as to perform I/O to disk and not to a DRAM cache. Although optimizations may be possible that enable significant caching or buffering of the transferred data within system memory, and although such optimizations may be beneficial in a production environment, you are not permitted to engage in such optimizations for the benchmark runs.

The Offeror must provide an end-to-end description of the environment in which each benchmark was run. This will include:

  • Client and server system configurations, including node and processor counts, processor models, memory size and speed, and OS (names and versions)
  • Storage used for global file system and storage configurations. 
  • Network fabric used to connect servers, clients, and storage, including network configuration settings. 
  • Client and server configuration settings. These should include: 
    • Client and server sysctl settings 
    • Driver options 
    • Network interface options 
    • File system configuration options 
  • Compiler name and version, compiler options, and libraries used to build benchmarks.

Required Runs

mdtest will be run to test the rate of file creation and deletion under the following sets of circumstances (separately):

  1. Creating 1,048,576 files by one process in one directory;
  2. Removing those 1,048,576 files;
  3. Creating 1,048,576 files by NP processes in separate directories, one directory per process.
  4. Removing those 1,048,576 files;
  5. Creating 1,048,576 files by NP processes in the same directory;
  6. Removing those 1,048,576 files;
  7. Creating 1 file by NP processes.
  8. Removing that 1 file by NP processes. 

where NP will be the number of processors:

a)    on one node that yields the peak results for a single node.

b)    on multiple nodes that yields the peak results for the test system.

c)    in total that exist on the test system.

d)    in total that will exist on the delivered system (a projection based on data gathered).

Change Log 

  • 03/29/2013
    • Initial version 1.8.4 added to this web site