Skip to main content

Compatibility specification and extractor plugin for IOR (I/O)

Project description

Compspec IOR

PyPI version

A compspec (Composition spec) is a specification and model for comparing things. Compspec IOR is a plugin for extraction of IOR metadata from applications, and packaging in compatibility specification artifacts. This means that we also maintain the compatibility schema here. To learn more:

  • Compspec: the Python library that discovers and loads this plugin.
  • Compatibility: of container images and applications to a host environment.
  • Compspec Go: the Go library that retrieves artifacts and makes graphs for image selection and scheduling.

Usage

Install compspec and the plugin here:

pip install compspec
pip install compspec-ior

Then run an extraction with IOR. You can use defaults, or add any parameters to IOR after the plugin name "ior" Here is how to print to the terminal:

compspec extract ior
IOR output
{
    "version": "0.0.0",
    "kind": "CompatibilitySpec",
    "metadata": {
        "name": "compat-experiment",
        "schemas": {
            "io.compspec.ior": "https://raw.githubusercontent.com/compspec/compspec-ior/main/compspec_ior/schema.json"
        }
    },
    "compatibilities": [
        {
            "name": "io.compspec.ior",
            "version": "0.0.0",
            "attributes": {
                "version": "4.0.0rc1",
                "began": "Thu Feb 22 00:36:12 2024",
                "machine": "Linux 2b3ee0c4c948",
                "finished": "Thu Feb 22 00:36:12 2024",
                "command_line": "ior -O summaryFormat=JSON",
                "summary.write.operation": "write",
                "summary.write.API": "POSIX",
                "summary.write.TestID": 0,
                "summary.write.ReferenceNumber": 0,
                "summary.write.segmentCount": 1,
                "summary.write.blockSize": 1048576,
                "summary.write.transferSize": 262144,
                "summary.write.numTasks": 1,
                "summary.write.tasksPerNode": 1,
                "summary.write.repetitions": 1,
                "summary.write.filePerProc": 0,
                "summary.write.reorderTasks": 0,
                "summary.write.taskPerNodeOffset": 1,
                "summary.write.reorderTasksRandom": 0,
                "summary.write.reorderTasksRandomSeed": 0,
                "summary.write.bwMaxMIB": 904.92,
                "summary.write.bwMinMIB": 904.92,
                "summary.write.bwMeanMIB": 904.92,
                "summary.write.bwStdMIB": 0.0,
                "summary.write.OPsMax": 3619.6798,
                "summary.write.OPsMin": 3619.6798,
                "summary.write.OPsMean": 3619.6798,
                "summary.write.OPsSD": 0.0,
                "summary.write.MeanTime": 0.0011,
                "summary.write.xsizeMiB": 1.0,
                "summary.read.operation": "read",
                "summary.read.API": "POSIX",
                "summary.read.TestID": 0,
                "summary.read.ReferenceNumber": 0,
                "summary.read.segmentCount": 1,
                "summary.read.blockSize": 1048576,
                "summary.read.transferSize": 262144,
                "summary.read.numTasks": 1,
                "summary.read.tasksPerNode": 1,
                "summary.read.repetitions": 1,
                "summary.read.filePerProc": 0,
                "summary.read.reorderTasks": 0,
                "summary.read.taskPerNodeOffset": 1,
                "summary.read.reorderTasksRandom": 0,
                "summary.read.reorderTasksRandomSeed": 0,
                "summary.read.bwMaxMIB": 6615.6215,
                "summary.read.bwMinMIB": 6615.6215,
                "summary.read.bwMeanMIB": 6615.6215,
                "summary.read.bwStdMIB": 0.0,
                "summary.read.OPsMax": 26462.4858,
                "summary.read.OPsMin": 26462.4858,
                "summary.read.OPsMean": 26462.4858,
                "summary.read.OPsSD": 0.0,
                "summary.read.MeanTime": 0.0002,
                "summary.read.xsizeMiB": 1.0,
                "test.0.starttime": "Thu Feb 22 00:36:12 2024",
                "test.0.capacity": "1.8 TiB",
                "test.0.used_capacity": "20.2%",
                "test.0.inodes": "116.4 Mi",
                "test.0.used_inodes": "5.3%",
                "test.0.parameters.testID": 0,
                "test.0.parameters.refnum": 0,
                "test.0.parameters.api": "POSIX",
                "test.0.parameters.platform": "2b3ee0c4c(Linux)",
                "test.0.parameters.testFileName": "testFile",
                "test.0.parameters.deadlineForStonewall": 0,
                "test.0.parameters.stoneWallingWearOut": 0,
                "test.0.parameters.maxTimeDuration": 0,
                "test.0.parameters.outlierThreshold": 0,
                "test.0.parameters.options": "(null)",
                "test.0.parameters.dryRun": 0,
                "test.0.parameters.nodes": 1,
                "test.0.parameters.memoryPerTask": 0,
                "test.0.parameters.memoryPerNode": 0,
                "test.0.parameters.tasksPerNode": 1,
                "test.0.parameters.repetitions": 1,
                "test.0.parameters.multiFile": 0,
                "test.0.parameters.interTestDelay": 0,
                "test.0.parameters.fsync": 0,
                "test.0.parameters.fsyncperwrite": 0,
                "test.0.parameters.useExistingTestFile": 0,
                "test.0.parameters.uniqueDir": 0,
                "test.0.parameters.singleXferAttempt": 0,
                "test.0.parameters.readFile": 1,
                "test.0.parameters.writeFile": 1,
                "test.0.parameters.filePerProc": 0,
                "test.0.parameters.reorderTasks": 0,
                "test.0.parameters.reorderTasksRandom": 0,
                "test.0.parameters.reorderTasksRandomSeed": 0,
                "test.0.parameters.randomOffset": 0,
                "test.0.parameters.checkWrite": 0,
                "test.0.parameters.checkRead": 0,
                "test.0.parameters.dataPacketType": 0,
                "test.0.parameters.keepFile": 0,
                "test.0.parameters.keepFileWithError": 0,
                "test.0.parameters.warningAsErrors": 0,
                "test.0.parameters.verbose": 0,
                "test.0.parameters.data packet type": "g",
                "test.0.parameters.setTimeStampSignature/incompressibleSeed": 0,
                "test.0.parameters.collective": 0,
                "test.0.parameters.segmentCount": 1,
                "test.0.parameters.transferSize": 262144,
                "test.0.parameters.blockSize": 1048576,
                "test.0.options.api": "POSIX",
                "test.0.options.apiVersion": "",
                "test.0.options.test filename": "testFile",
                "test.0.options.access": "single-shared-file",
                "test.0.options.type": "independent",
                "test.0.options.segments": 1,
                "test.0.options.ordering in a file": "sequential",
                "test.0.options.ordering inter file": "no tasks offsets",
                "test.0.options.nodes": 1,
                "test.0.options.tasks": 1,
                "test.0.options.clients per node": 1,
                "test.0.options.repetitions": 1,
                "test.0.options.xfersize": "262144 bytes",
                "test.0.options.blocksize": "1 MiB",
                "test.0.options.aggregate filesize": "1 MiB",
                "test.0.results.0.access": "write",
                "test.0.results.0.bwMiB": 904.92,
                "test.0.results.0.blockKiB": 1024.0,
                "test.0.results.0.xferKiB": 256.0,
                "test.0.results.0.iops": 3842.6972,
                "test.0.results.0.latency": 0.0003,
                "test.0.results.0.openTime": 0.0001,
                "test.0.results.0.wrRdTime": 0.001,
                "test.0.results.0.closeTime": 0.0,
                "test.0.results.0.totalTime": 0.0011,
                "test.0.results.1.access": "read",
                "test.0.results.1.bwMiB": 6615.6215,
                "test.0.results.1.blockKiB": 1024.0,
                "test.0.results.1.xferKiB": 256.0,
                "test.0.results.1.iops": 27962.0267,
                "test.0.results.1.latency": 0.0,
                "test.0.results.1.openTime": 0.0,
                "test.0.results.1.wrRdTime": 0.0001,
                "test.0.results.1.closeTime": 0.0,
                "test.0.results.1.totalTime": 0.0002
            }
        }
    ]
}

And how to save to file

compspec  extract --outfile ior-test.json ior

And run the example to see how to use compspec-ior directly in Python to generate the same artifact.

python ./examples/singleton-run.py

Development

If you open the Development container in VSCode, you'll find ior on the path:

$ which ior
/usr/bin/ior

This allows us to easily develop and test the compatibility plugin. You can

TODO

  • how to handle adding lists (with indices) to schema?

License

HPCIC DevTools is distributed under the terms of the MIT license. All new contributions must be made under this license.

See LICENSE, COPYRIGHT, and NOTICE for details.

SPDX-License-Identifier: (MIT)

LLNL-CODE- 842614

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

compspec-ior-0.0.1.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

compspec_ior-0.0.1-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file compspec-ior-0.0.1.tar.gz.

File metadata

  • Download URL: compspec-ior-0.0.1.tar.gz
  • Upload date:
  • Size: 13.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.5

File hashes

Hashes for compspec-ior-0.0.1.tar.gz
Algorithm Hash digest
SHA256 02c571a890f3860f1006b3590ced1428bd28f17c26af20a54ba3bccf7303de27
MD5 7120ccd5be2475087466deb2ab16fb71
BLAKE2b-256 8cf3685ae1cea1b33de8f20d2a12a20452573574ba8fee1b33fe0669f580a330

See more details on using hashes here.

File details

Details for the file compspec_ior-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: compspec_ior-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 11.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.5

File hashes

Hashes for compspec_ior-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b4412beff3f224113d753a9546f7d2a3faf70b5ea8cdd63c27609e2c575c2cb6
MD5 0f95066517a7eb8ee82bf8f89b1461c5
BLAKE2b-256 b9ef523b9c1eaa7801c6e467c7246d8d6ccc19c46cf3848fda8f366199fed5b9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page