compspec-ior


Namecompspec-ior JSON
Version 0.0.1 PyPI version JSON
download
home_pagehttps://github.com/compspec/compspec-ior
SummaryCompatibility specification and extractor plugin for IOR (I/O)
upload_time2024-02-22 02:28:20
maintainerVanessa Sochat
docs_urlNone
authorVanessa Sochat
requires_python
licenseLICENSE
keywords compatibility compspec ior i/o intents
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Compspec IOR

<p align="center">
  <img height="300" src="https://raw.githubusercontent.com/compspec/spec/main/img/compspec-circle.png">
</p>

[![PyPI version](https://badge.fury.io/py/compspec-ior.svg)](https://badge.fury.io/py/compspec-ior)

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

 - [Compspec](https://github.com/compspec/compspec): the Python library that discovers and loads this plugin.
 - [Compatibility](https://github.com/compspec/spec/tree/main/compatibility): of container images and applications to a host environment.
 - [Compspec Go](https://github.com/compspec/compspec-go): the Go library that retrieves artifacts and makes graphs for image selection and scheduling.


## Usage

Install compspec and the plugin here:

```bash
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:

```bash
compspec extract ior
```

<details>

<summary>IOR output</summary>

```console
{
    "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
            }
        }
    ]
}
```

</details>

And how to save to file

```bash
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.

```bash
python ./examples/singleton-run.py
```


### Development

If you open the [Development container](.devcontainer) in VSCode, you'll find ior on the path:

```bash
$ 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](https://github.com/converged-computing/cloud-select/blob/main/LICENSE),
[COPYRIGHT](https://github.com/converged-computing/cloud-select/blob/main/COPYRIGHT), and
[NOTICE](https://github.com/converged-computing/cloud-select/blob/main/NOTICE) for details.

SPDX-License-Identifier: (MIT)

LLNL-CODE- 842614

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/compspec/compspec-ior",
    "name": "compspec-ior",
    "maintainer": "Vanessa Sochat",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "compatibility,compspec,IOR,I/O,intents",
    "author": "Vanessa Sochat",
    "author_email": "vsoch@users.noreply.github.com",
    "download_url": "https://files.pythonhosted.org/packages/8c/f3/685ae1cea1b33de8f20d2a12a20452573574ba8fee1b33fe0669f580a330/compspec-ior-0.0.1.tar.gz",
    "platform": null,
    "description": "# Compspec IOR\n\n<p align=\"center\">\n  <img height=\"300\" src=\"https://raw.githubusercontent.com/compspec/spec/main/img/compspec-circle.png\">\n</p>\n\n[![PyPI version](https://badge.fury.io/py/compspec-ior.svg)](https://badge.fury.io/py/compspec-ior)\n\nA compspec (Composition spec) is a specification and model for comparing things. Compspec IOR is\na plugin for extraction of [IOR](https://github.com/hpc/ior) metadata from applications, and packaging in compatibility specification\nartifacts. This means that we also maintain the compatibility schema here. To learn more:\n\n - [Compspec](https://github.com/compspec/compspec): the Python library that discovers and loads this plugin.\n - [Compatibility](https://github.com/compspec/spec/tree/main/compatibility): of container images and applications to a host environment.\n - [Compspec Go](https://github.com/compspec/compspec-go): the Go library that retrieves artifacts and makes graphs for image selection and scheduling.\n\n\n## Usage\n\nInstall compspec and the plugin here:\n\n```bash\npip install compspec\npip install compspec-ior\n```\n\nThen run an extraction with IOR. You can use defaults, or add any parameters to IOR after the plugin name \"ior\"\nHere is how to print to the terminal:\n\n```bash\ncompspec extract ior\n```\n\n<details>\n\n<summary>IOR output</summary>\n\n```console\n{\n    \"version\": \"0.0.0\",\n    \"kind\": \"CompatibilitySpec\",\n    \"metadata\": {\n        \"name\": \"compat-experiment\",\n        \"schemas\": {\n            \"io.compspec.ior\": \"https://raw.githubusercontent.com/compspec/compspec-ior/main/compspec_ior/schema.json\"\n        }\n    },\n    \"compatibilities\": [\n        {\n            \"name\": \"io.compspec.ior\",\n            \"version\": \"0.0.0\",\n            \"attributes\": {\n                \"version\": \"4.0.0rc1\",\n                \"began\": \"Thu Feb 22 00:36:12 2024\",\n                \"machine\": \"Linux 2b3ee0c4c948\",\n                \"finished\": \"Thu Feb 22 00:36:12 2024\",\n                \"command_line\": \"ior -O summaryFormat=JSON\",\n                \"summary.write.operation\": \"write\",\n                \"summary.write.API\": \"POSIX\",\n                \"summary.write.TestID\": 0,\n                \"summary.write.ReferenceNumber\": 0,\n                \"summary.write.segmentCount\": 1,\n                \"summary.write.blockSize\": 1048576,\n                \"summary.write.transferSize\": 262144,\n                \"summary.write.numTasks\": 1,\n                \"summary.write.tasksPerNode\": 1,\n                \"summary.write.repetitions\": 1,\n                \"summary.write.filePerProc\": 0,\n                \"summary.write.reorderTasks\": 0,\n                \"summary.write.taskPerNodeOffset\": 1,\n                \"summary.write.reorderTasksRandom\": 0,\n                \"summary.write.reorderTasksRandomSeed\": 0,\n                \"summary.write.bwMaxMIB\": 904.92,\n                \"summary.write.bwMinMIB\": 904.92,\n                \"summary.write.bwMeanMIB\": 904.92,\n                \"summary.write.bwStdMIB\": 0.0,\n                \"summary.write.OPsMax\": 3619.6798,\n                \"summary.write.OPsMin\": 3619.6798,\n                \"summary.write.OPsMean\": 3619.6798,\n                \"summary.write.OPsSD\": 0.0,\n                \"summary.write.MeanTime\": 0.0011,\n                \"summary.write.xsizeMiB\": 1.0,\n                \"summary.read.operation\": \"read\",\n                \"summary.read.API\": \"POSIX\",\n                \"summary.read.TestID\": 0,\n                \"summary.read.ReferenceNumber\": 0,\n                \"summary.read.segmentCount\": 1,\n                \"summary.read.blockSize\": 1048576,\n                \"summary.read.transferSize\": 262144,\n                \"summary.read.numTasks\": 1,\n                \"summary.read.tasksPerNode\": 1,\n                \"summary.read.repetitions\": 1,\n                \"summary.read.filePerProc\": 0,\n                \"summary.read.reorderTasks\": 0,\n                \"summary.read.taskPerNodeOffset\": 1,\n                \"summary.read.reorderTasksRandom\": 0,\n                \"summary.read.reorderTasksRandomSeed\": 0,\n                \"summary.read.bwMaxMIB\": 6615.6215,\n                \"summary.read.bwMinMIB\": 6615.6215,\n                \"summary.read.bwMeanMIB\": 6615.6215,\n                \"summary.read.bwStdMIB\": 0.0,\n                \"summary.read.OPsMax\": 26462.4858,\n                \"summary.read.OPsMin\": 26462.4858,\n                \"summary.read.OPsMean\": 26462.4858,\n                \"summary.read.OPsSD\": 0.0,\n                \"summary.read.MeanTime\": 0.0002,\n                \"summary.read.xsizeMiB\": 1.0,\n                \"test.0.starttime\": \"Thu Feb 22 00:36:12 2024\",\n                \"test.0.capacity\": \"1.8 TiB\",\n                \"test.0.used_capacity\": \"20.2%\",\n                \"test.0.inodes\": \"116.4 Mi\",\n                \"test.0.used_inodes\": \"5.3%\",\n                \"test.0.parameters.testID\": 0,\n                \"test.0.parameters.refnum\": 0,\n                \"test.0.parameters.api\": \"POSIX\",\n                \"test.0.parameters.platform\": \"2b3ee0c4c(Linux)\",\n                \"test.0.parameters.testFileName\": \"testFile\",\n                \"test.0.parameters.deadlineForStonewall\": 0,\n                \"test.0.parameters.stoneWallingWearOut\": 0,\n                \"test.0.parameters.maxTimeDuration\": 0,\n                \"test.0.parameters.outlierThreshold\": 0,\n                \"test.0.parameters.options\": \"(null)\",\n                \"test.0.parameters.dryRun\": 0,\n                \"test.0.parameters.nodes\": 1,\n                \"test.0.parameters.memoryPerTask\": 0,\n                \"test.0.parameters.memoryPerNode\": 0,\n                \"test.0.parameters.tasksPerNode\": 1,\n                \"test.0.parameters.repetitions\": 1,\n                \"test.0.parameters.multiFile\": 0,\n                \"test.0.parameters.interTestDelay\": 0,\n                \"test.0.parameters.fsync\": 0,\n                \"test.0.parameters.fsyncperwrite\": 0,\n                \"test.0.parameters.useExistingTestFile\": 0,\n                \"test.0.parameters.uniqueDir\": 0,\n                \"test.0.parameters.singleXferAttempt\": 0,\n                \"test.0.parameters.readFile\": 1,\n                \"test.0.parameters.writeFile\": 1,\n                \"test.0.parameters.filePerProc\": 0,\n                \"test.0.parameters.reorderTasks\": 0,\n                \"test.0.parameters.reorderTasksRandom\": 0,\n                \"test.0.parameters.reorderTasksRandomSeed\": 0,\n                \"test.0.parameters.randomOffset\": 0,\n                \"test.0.parameters.checkWrite\": 0,\n                \"test.0.parameters.checkRead\": 0,\n                \"test.0.parameters.dataPacketType\": 0,\n                \"test.0.parameters.keepFile\": 0,\n                \"test.0.parameters.keepFileWithError\": 0,\n                \"test.0.parameters.warningAsErrors\": 0,\n                \"test.0.parameters.verbose\": 0,\n                \"test.0.parameters.data packet type\": \"g\",\n                \"test.0.parameters.setTimeStampSignature/incompressibleSeed\": 0,\n                \"test.0.parameters.collective\": 0,\n                \"test.0.parameters.segmentCount\": 1,\n                \"test.0.parameters.transferSize\": 262144,\n                \"test.0.parameters.blockSize\": 1048576,\n                \"test.0.options.api\": \"POSIX\",\n                \"test.0.options.apiVersion\": \"\",\n                \"test.0.options.test filename\": \"testFile\",\n                \"test.0.options.access\": \"single-shared-file\",\n                \"test.0.options.type\": \"independent\",\n                \"test.0.options.segments\": 1,\n                \"test.0.options.ordering in a file\": \"sequential\",\n                \"test.0.options.ordering inter file\": \"no tasks offsets\",\n                \"test.0.options.nodes\": 1,\n                \"test.0.options.tasks\": 1,\n                \"test.0.options.clients per node\": 1,\n                \"test.0.options.repetitions\": 1,\n                \"test.0.options.xfersize\": \"262144 bytes\",\n                \"test.0.options.blocksize\": \"1 MiB\",\n                \"test.0.options.aggregate filesize\": \"1 MiB\",\n                \"test.0.results.0.access\": \"write\",\n                \"test.0.results.0.bwMiB\": 904.92,\n                \"test.0.results.0.blockKiB\": 1024.0,\n                \"test.0.results.0.xferKiB\": 256.0,\n                \"test.0.results.0.iops\": 3842.6972,\n                \"test.0.results.0.latency\": 0.0003,\n                \"test.0.results.0.openTime\": 0.0001,\n                \"test.0.results.0.wrRdTime\": 0.001,\n                \"test.0.results.0.closeTime\": 0.0,\n                \"test.0.results.0.totalTime\": 0.0011,\n                \"test.0.results.1.access\": \"read\",\n                \"test.0.results.1.bwMiB\": 6615.6215,\n                \"test.0.results.1.blockKiB\": 1024.0,\n                \"test.0.results.1.xferKiB\": 256.0,\n                \"test.0.results.1.iops\": 27962.0267,\n                \"test.0.results.1.latency\": 0.0,\n                \"test.0.results.1.openTime\": 0.0,\n                \"test.0.results.1.wrRdTime\": 0.0001,\n                \"test.0.results.1.closeTime\": 0.0,\n                \"test.0.results.1.totalTime\": 0.0002\n            }\n        }\n    ]\n}\n```\n\n</details>\n\nAnd how to save to file\n\n```bash\ncompspec  extract --outfile ior-test.json ior\n```\n\nAnd run the example to see how to use compspec-ior directly in Python to generate the same\nartifact.\n\n```bash\npython ./examples/singleton-run.py\n```\n\n\n### Development\n\nIf you open the [Development container](.devcontainer) in VSCode, you'll find ior on the path:\n\n```bash\n$ which ior\n/usr/bin/ior\n```\n\nThis allows us to easily develop and test the compatibility plugin. You can\n\n## TODO\n\n- how to handle adding lists (with indices) to schema?\n\n## License\n\nHPCIC DevTools is distributed under the terms of the MIT license.\nAll new contributions must be made under this license.\n\nSee [LICENSE](https://github.com/converged-computing/cloud-select/blob/main/LICENSE),\n[COPYRIGHT](https://github.com/converged-computing/cloud-select/blob/main/COPYRIGHT), and\n[NOTICE](https://github.com/converged-computing/cloud-select/blob/main/NOTICE) for details.\n\nSPDX-License-Identifier: (MIT)\n\nLLNL-CODE- 842614\n",
    "bugtrack_url": null,
    "license": "LICENSE",
    "summary": "Compatibility specification and extractor plugin for IOR (I/O)",
    "version": "0.0.1",
    "project_urls": {
        "Homepage": "https://github.com/compspec/compspec-ior"
    },
    "split_keywords": [
        "compatibility",
        "compspec",
        "ior",
        "i/o",
        "intents"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b9ef523b9c1eaa7801c6e467c7246d8d6ccc19c46cf3848fda8f366199fed5b9",
                "md5": "0f95066517a7eb8ee82bf8f89b1461c5",
                "sha256": "b4412beff3f224113d753a9546f7d2a3faf70b5ea8cdd63c27609e2c575c2cb6"
            },
            "downloads": -1,
            "filename": "compspec_ior-0.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "0f95066517a7eb8ee82bf8f89b1461c5",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 11107,
            "upload_time": "2024-02-22T02:28:18",
            "upload_time_iso_8601": "2024-02-22T02:28:18.999370Z",
            "url": "https://files.pythonhosted.org/packages/b9/ef/523b9c1eaa7801c6e467c7246d8d6ccc19c46cf3848fda8f366199fed5b9/compspec_ior-0.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8cf3685ae1cea1b33de8f20d2a12a20452573574ba8fee1b33fe0669f580a330",
                "md5": "7120ccd5be2475087466deb2ab16fb71",
                "sha256": "02c571a890f3860f1006b3590ced1428bd28f17c26af20a54ba3bccf7303de27"
            },
            "downloads": -1,
            "filename": "compspec-ior-0.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "7120ccd5be2475087466deb2ab16fb71",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 13509,
            "upload_time": "2024-02-22T02:28:20",
            "upload_time_iso_8601": "2024-02-22T02:28:20.728879Z",
            "url": "https://files.pythonhosted.org/packages/8c/f3/685ae1cea1b33de8f20d2a12a20452573574ba8fee1b33fe0669f580a330/compspec-ior-0.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-22 02:28:20",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "compspec",
    "github_project": "compspec-ior",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "compspec-ior"
}
        
Elapsed time: 0.23802s