|
1 | 1 | window.BENCHMARK_DATA = {
|
2 |
| - "lastUpdate": 1711554817626, |
| 2 | + "lastUpdate": 1711565086528, |
3 | 3 | "repoUrl": "https://github.com/aiidateam/aiida-core",
|
4 | 4 | "xAxis": "id",
|
5 | 5 | "oneChartGroups": [],
|
@@ -36421,6 +36421,189 @@ window.BENCHMARK_DATA = {
|
36421 | 36421 | "extra": "mean: 22.177 msec\nrounds: 100"
|
36422 | 36422 | }
|
36423 | 36423 | ]
|
| 36424 | + }, |
| 36425 | + { |
| 36426 | + "cpu": { |
| 36427 | + "speed": "3.24", |
| 36428 | + "cores": 4, |
| 36429 | + "physicalCores": 2, |
| 36430 | + "processors": 1 |
| 36431 | + }, |
| 36432 | + "extra": { |
| 36433 | + "pythonVersion": "3.10.14", |
| 36434 | + "metadata": "postgres:12.14, rabbitmq:3.8.14-management" |
| 36435 | + }, |
| 36436 | + "commit": { |
| 36437 | + "id": "6898ff4d8c263cf08707c61411a005f6a7f731dd", |
| 36438 | + "message": "`CalcJob`: Allow to define order of copying of input files (#6285)\n\nThere are three different sources of files that are copied to the working\r\ndirectory on the remote computer where a calculation job is executed:\r\n\r\n* Sandbox: files written to a temporary sandbox folder on the local file\r\n system written by the `CalcJob` plugin, first in the\r\n `prepare_for_submission` method, followed by the `presubmit` of the\r\n base class.\r\n* Local: files written to the temporary sandbox folder by the engine\r\n based on the `local_copy_list` defined by the plugin in the\r\n `prepare_for_submission` method.\r\n* Remote: files written directly to the remote working directory by the\r\n engine base on the `remote_copy_list` defined by the plugin in the\r\n `prepare_for_submission` method.\r\n\r\nHistorically, these operations were performed in the order of sandbox,\r\nlocal and remote. For certain use cases, however, this was deemed\r\nnon-ideal, for example because files from the remote would override files\r\nwritten by the plugin itself in the sandbox. This enum can be assigned to\r\nthe `CalcInfo` instance returned by the calculation job plugin\r\n`prepare_for_submission` implementation to change the order.\r\n\r\nHere, a new attribute `file_copy_operation_order` is added to the\r\n`CalcInfo` datastructure. It takes a list of instance of the\r\n`FileCopyOperation` enum. The enum defines the types of file copy\r\noperations that exist, and the `CalcInfo` attribute specifies the order\r\nin which they should be executed. This design makes it flexible to the\r\npotential addition of other file copy operations in the future.\r\n\r\nThe default value is set to the current order of sandbox, local, remote.\r\nIt is set both in the `CalcJob.presubmit` in case the plugin\r\nimplementation did not explicitly specify it (where it is also type\r\nchecked) as well in the `upload_calculation` function, which is\r\nsometimes directly without going through `CalcJob.presubmit` in which\r\ncase the default wouldn't be set.\r\n\r\nTo simplify the implementation, the code to copy these three types of\r\nfiles are factored out of the `upload_calculation` function to the\r\nfunctions `_copy_remote_files`, `_copy_remote_files` and\r\n`_copy_sandbox_files` functions, respectively.\r\n\r\nFinally, the original approach would not actually copy the local and\r\nsandbox files separately directly to the remote working directory.\r\nRather, it would copy the local files to the sandbox, and then the\r\ncontents of the entire sandbox would be copied over. This required\r\nupdating the `provenance_exclude_list` with the files added from the\r\n`local_copy_list` because they should not be copied to the node's\r\nrepository. The implementation is simplified by copying the local files\r\ndirectly to the working directory, instead of going through the sandbox.\r\nSince the transport interface only works with files and not streams in\r\nmemory, the implementation is still forced to first copy the local files\r\nto a temporary directory on disk before copying them over to the working\r\ndirectory using the transport.", |
| 36439 | + "timestamp": "2024-03-27T19:35:47+01:00", |
| 36440 | + "url": "https://github.com/aiidateam/aiida-core/commit/6898ff4d8c263cf08707c61411a005f6a7f731dd", |
| 36441 | + "distinct": true, |
| 36442 | + "tree_id": "cdab3299f42597f324700697fdc99ecb317aec84" |
| 36443 | + }, |
| 36444 | + "date": 1711565082056, |
| 36445 | + "benches": [ |
| 36446 | + { |
| 36447 | + "name": "tests/benchmark/test_archive.py::test_export[no-objects]", |
| 36448 | + "value": 2.950156569308027, |
| 36449 | + "unit": "iter/sec", |
| 36450 | + "range": "stddev: 0.080108", |
| 36451 | + "group": "import-export", |
| 36452 | + "extra": "mean: 338.97 msec\nrounds: 12" |
| 36453 | + }, |
| 36454 | + { |
| 36455 | + "name": "tests/benchmark/test_archive.py::test_export[with-objects]", |
| 36456 | + "value": 2.8768963294405134, |
| 36457 | + "unit": "iter/sec", |
| 36458 | + "range": "stddev: 0.070023", |
| 36459 | + "group": "import-export", |
| 36460 | + "extra": "mean: 347.60 msec\nrounds: 12" |
| 36461 | + }, |
| 36462 | + { |
| 36463 | + "name": "tests/benchmark/test_archive.py::test_import[no-objects]", |
| 36464 | + "value": 4.084647174081346, |
| 36465 | + "unit": "iter/sec", |
| 36466 | + "range": "stddev: 0.081733", |
| 36467 | + "group": "import-export", |
| 36468 | + "extra": "mean: 244.82 msec\nrounds: 12" |
| 36469 | + }, |
| 36470 | + { |
| 36471 | + "name": "tests/benchmark/test_archive.py::test_import[with-objects]", |
| 36472 | + "value": 4.344547568580546, |
| 36473 | + "unit": "iter/sec", |
| 36474 | + "range": "stddev: 0.0096876", |
| 36475 | + "group": "import-export", |
| 36476 | + "extra": "mean: 230.17 msec\nrounds: 12" |
| 36477 | + }, |
| 36478 | + { |
| 36479 | + "name": "tests/benchmark/test_engine.py::test_workchain_local[basic-loop]", |
| 36480 | + "value": 3.069344015631854, |
| 36481 | + "unit": "iter/sec", |
| 36482 | + "range": "stddev: 0.099160", |
| 36483 | + "group": "engine", |
| 36484 | + "extra": "mean: 325.80 msec\nrounds: 10" |
| 36485 | + }, |
| 36486 | + { |
| 36487 | + "name": "tests/benchmark/test_engine.py::test_workchain_local[serial-wc-loop]", |
| 36488 | + "value": 0.7142190648930413, |
| 36489 | + "unit": "iter/sec", |
| 36490 | + "range": "stddev: 0.026256", |
| 36491 | + "group": "engine", |
| 36492 | + "extra": "mean: 1.4001 sec\nrounds: 10" |
| 36493 | + }, |
| 36494 | + { |
| 36495 | + "name": "tests/benchmark/test_engine.py::test_workchain_local[threaded-wc-loop]", |
| 36496 | + "value": 0.8661242742052022, |
| 36497 | + "unit": "iter/sec", |
| 36498 | + "range": "stddev: 0.029188", |
| 36499 | + "group": "engine", |
| 36500 | + "extra": "mean: 1.1546 sec\nrounds: 10" |
| 36501 | + }, |
| 36502 | + { |
| 36503 | + "name": "tests/benchmark/test_engine.py::test_workchain_local[serial-calcjob-loop]", |
| 36504 | + "value": 0.2005190590483768, |
| 36505 | + "unit": "iter/sec", |
| 36506 | + "range": "stddev: 0.15158", |
| 36507 | + "group": "engine", |
| 36508 | + "extra": "mean: 4.9871 sec\nrounds: 10" |
| 36509 | + }, |
| 36510 | + { |
| 36511 | + "name": "tests/benchmark/test_engine.py::test_workchain_local[threaded-calcjob-loop]", |
| 36512 | + "value": 0.21880131495479432, |
| 36513 | + "unit": "iter/sec", |
| 36514 | + "range": "stddev: 0.14547", |
| 36515 | + "group": "engine", |
| 36516 | + "extra": "mean: 4.5704 sec\nrounds: 10" |
| 36517 | + }, |
| 36518 | + { |
| 36519 | + "name": "tests/benchmark/test_engine.py::test_workchain_daemon[basic-loop]", |
| 36520 | + "value": 2.484722846193213, |
| 36521 | + "unit": "iter/sec", |
| 36522 | + "range": "stddev: 0.011730", |
| 36523 | + "group": "engine", |
| 36524 | + "extra": "mean: 402.46 msec\nrounds: 10" |
| 36525 | + }, |
| 36526 | + { |
| 36527 | + "name": "tests/benchmark/test_engine.py::test_workchain_daemon[serial-wc-loop]", |
| 36528 | + "value": 0.5120674274133298, |
| 36529 | + "unit": "iter/sec", |
| 36530 | + "range": "stddev: 0.039340", |
| 36531 | + "group": "engine", |
| 36532 | + "extra": "mean: 1.9529 sec\nrounds: 10" |
| 36533 | + }, |
| 36534 | + { |
| 36535 | + "name": "tests/benchmark/test_engine.py::test_workchain_daemon[threaded-wc-loop]", |
| 36536 | + "value": 0.5771538038567835, |
| 36537 | + "unit": "iter/sec", |
| 36538 | + "range": "stddev: 0.066041", |
| 36539 | + "group": "engine", |
| 36540 | + "extra": "mean: 1.7326 sec\nrounds: 10" |
| 36541 | + }, |
| 36542 | + { |
| 36543 | + "name": "tests/benchmark/test_engine.py::test_workchain_daemon[serial-calcjob-loop]", |
| 36544 | + "value": 0.1590269471776469, |
| 36545 | + "unit": "iter/sec", |
| 36546 | + "range": "stddev: 0.092652", |
| 36547 | + "group": "engine", |
| 36548 | + "extra": "mean: 6.2882 sec\nrounds: 10" |
| 36549 | + }, |
| 36550 | + { |
| 36551 | + "name": "tests/benchmark/test_engine.py::test_workchain_daemon[threaded-calcjob-loop]", |
| 36552 | + "value": 0.18019674948558326, |
| 36553 | + "unit": "iter/sec", |
| 36554 | + "range": "stddev: 0.087865", |
| 36555 | + "group": "engine", |
| 36556 | + "extra": "mean: 5.5495 sec\nrounds: 10" |
| 36557 | + }, |
| 36558 | + { |
| 36559 | + "name": "tests/benchmark/test_nodes.py::test_store_backend", |
| 36560 | + "value": 424.6132123855846, |
| 36561 | + "unit": "iter/sec", |
| 36562 | + "range": "stddev: 0.00020499", |
| 36563 | + "group": "node", |
| 36564 | + "extra": "mean: 2.3551 msec\nrounds: 254" |
| 36565 | + }, |
| 36566 | + { |
| 36567 | + "name": "tests/benchmark/test_nodes.py::test_store", |
| 36568 | + "value": 75.94574791804529, |
| 36569 | + "unit": "iter/sec", |
| 36570 | + "range": "stddev: 0.00048594", |
| 36571 | + "group": "node", |
| 36572 | + "extra": "mean: 13.167 msec\nrounds: 100" |
| 36573 | + }, |
| 36574 | + { |
| 36575 | + "name": "tests/benchmark/test_nodes.py::test_store_with_object", |
| 36576 | + "value": 52.54204321298382, |
| 36577 | + "unit": "iter/sec", |
| 36578 | + "range": "stddev: 0.0010287", |
| 36579 | + "group": "node", |
| 36580 | + "extra": "mean: 19.032 msec\nrounds: 100" |
| 36581 | + }, |
| 36582 | + { |
| 36583 | + "name": "tests/benchmark/test_nodes.py::test_delete_backend", |
| 36584 | + "value": 271.29028287349087, |
| 36585 | + "unit": "iter/sec", |
| 36586 | + "range": "stddev: 0.00019842", |
| 36587 | + "group": "node", |
| 36588 | + "extra": "mean: 3.6861 msec\nrounds: 100" |
| 36589 | + }, |
| 36590 | + { |
| 36591 | + "name": "tests/benchmark/test_nodes.py::test_delete", |
| 36592 | + "value": 43.95962391187781, |
| 36593 | + "unit": "iter/sec", |
| 36594 | + "range": "stddev: 0.0013211", |
| 36595 | + "group": "node", |
| 36596 | + "extra": "mean: 22.748 msec\nrounds: 100" |
| 36597 | + }, |
| 36598 | + { |
| 36599 | + "name": "tests/benchmark/test_nodes.py::test_delete_with_object", |
| 36600 | + "value": 46.39737521216084, |
| 36601 | + "unit": "iter/sec", |
| 36602 | + "range": "stddev: 0.00088897", |
| 36603 | + "group": "node", |
| 36604 | + "extra": "mean: 21.553 msec\nrounds: 100" |
| 36605 | + } |
| 36606 | + ] |
36424 | 36607 | }
|
36425 | 36608 | ]
|
36426 | 36609 | }
|
|
0 commit comments