From b592338400f9db2173cd6d017f8b0ed5b3704f1f Mon Sep 17 00:00:00 2001 From: akashdhruv Date: Wed, 21 Jun 2023 01:57:00 -0500 Subject: [PATCH 1/9] update things --- README.rst | 52 ++++++++++++++++++++++++++++++++++++++----------- paper/paper.bib | 19 ++++++++++++++++++ paper/paper.md | 10 +++++----- 3 files changed, 65 insertions(+), 16 deletions(-) diff --git a/README.rst b/README.rst index 58a59071..78018ed7 100644 --- a/README.rst +++ b/README.rst @@ -10,10 +10,11 @@ Overview ********** -An overview of BoxKit is available in ``paper/paper.md`` that can be -compiled into a Journal of Open Source Software (JOSS) pdf by running -``make`` in the ``paper`` directory. Please note that the ``Makefile`` -requires a functioning Docker service on the machine. +An overview of BoxKit is available in ``paper/paper.md`` that provides a +summary and statement of purpose for the package. You can compile it +into a pdf by running ``make`` in the ``paper`` directory. Please note +that the ``Makefile`` requires a functioning Docker service on the +machine. ************** Installation @@ -26,9 +27,6 @@ Stable releases of BoxKit are hosted on Python Package Index website pip install BoxKit --user - export CXX=$(CPP_COMPILER) - pip install BoxKit --user --install-option="--enable-testing" --install-option="--with-cbox" - Note that ``pip`` should point to ``python3+`` installation package ``pip3``. @@ -38,9 +36,35 @@ using, .. code:: pip install --upgrade BoxKit --user - pip install --upgrade BoxKit --user --install-option="--enable-testing" --install-option="--with-cbox" pip uninstall BoxKit +Pre-release version can be installed directly from the git reposity by +executing, + +.. code:: + + pip install git+ssh://git@github.com/akashdhruv/BoxKit.git --user + +BoxKit provides various installation options that can be used to +configure the library with desired features. Following is a list of +options, + +.. code:: + + with-cbox - With C++ backend + with-pyarrow - With Apache Arrow data backend + with-zarr - With Zarr data backend + with-dask - With Dask data/parallel backend + enable-testing - Enabling testing mode for development + +Correspondingly, the installation command can be modified to include +necessary options as follows, + +.. code:: + + export CXX=$(CPP_COMPILER) + pip install BoxKit --user --install-option="--enable-testing" --install-option="--with-cbox" + There maybe situations where users may want to install BoxKit in development mode $\\textemdash$ to design new features, debug, or customize classes/methods to their needs. This can be easily @@ -62,6 +86,11 @@ source code and is an effective method for debugging. Note that the ******* Usage ******* + +.. code:: python + + import boxkit + Add usage details here ********** @@ -85,8 +114,8 @@ Add usage details here Contribution ************** -Contribution to the source code is encouraged. Developers can create -pull requests from their individual forks to the ``development`` branch. +Developers are encouraged to fork the repository and contribute to the +source code in the form of pull requests to the ``development`` branch. Please read ``DESIGN.rst`` for an overview of software design and developer guide @@ -94,7 +123,8 @@ developer guide Help & Support **************** -Please file an issue on the repository page +Please file an issue on the repository page to report bugs, request +features, and ask questions about usage .. |Code style: black| image:: https://img.shields.io/badge/code%20style-black-000000.svg :target: https://github.com/psf/black diff --git a/paper/paper.bib b/paper/paper.bib index 9d0e3a77..73a9921b 100644 --- a/paper/paper.bib +++ b/paper/paper.bib @@ -43,3 +43,22 @@ @misc{argonne year = 2023, url = {https://www.anl.gov/topic/business/laboratory-directed-research-and-development-ldrd} } + +@ARTICLE{yt, + author = {{Turk}, M.~J. and {Smith}, B.~D. and {Oishi}, J.~S. and {Skory}, S. and +{Skillman}, S.~W. and {Abel}, T. and {Norman}, M.~L.}, + title = "{yt: A Multi-code Analysis Toolkit for Astrophysical Simulation Data}", + journal = {The Astrophysical Journal Supplement Series}, +archivePrefix = "arXiv", + eprint = {1011.3514}, + primaryClass = "astro-ph.IM", + keywords = {cosmology: theory, methods: data analysis, methods: numerical}, + year = 2011, + month = jan, + volume = 192, + eid = {9}, + pages = {9}, + doi = {10.1088/0067-0049/192/1/9}, + adsurl = {http://adsabs.harvard.edu/abs/2011ApJS..192....9T}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} diff --git a/paper/paper.md b/paper/paper.md index 960ec06c..ea24af82 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -19,10 +19,10 @@ bibliography: paper.bib BoxKit is a library that provides building blocks to parallelize and scale data science, statistical analysis, and machine learning -applications for block-structured datasets. Spatial data from -simulations can be accessed and managed using tools -available in this library when working with Python-based -packages like SciKit, PyTorch, and OpticalFlow. +applications for block-structured simulation datasets. Spatial data +from simulations can be accessed and managed using tools available +in this library to interface with packages like SciKit, PyTorch, and +OpticalFlow for post-processing and analysis. The library provides a Python interface to efficiently access Adaptive Mesh Refinement (AMR) data typical of simulation outputs, and leverages @@ -41,7 +41,7 @@ represent chunks of data stored on disk, acting as array like input for Python functions/methods. This approach allows for selective loading of data from disk to memory in form of chunks/blocks which improves cache efficiency. The library also enables creation of new datasets for data-intensive workflows, and can be extended beyond its current -application to numerical simulations. +application to numerical simulations. ![BoxKit is designed to integrate simulation software instruments like Flash-X with Python-based machine learning and data analysis packages. Large simulation From d45861e37480214794dfee8471d7668f21729685 Mon Sep 17 00:00:00 2001 From: akashdhruv Date: Wed, 21 Jun 2023 01:58:03 -0500 Subject: [PATCH 2/9] update README --- README.rst | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/README.rst b/README.rst index 78018ed7..7e44bf37 100644 --- a/README.rst +++ b/README.rst @@ -11,10 +11,9 @@ ********** An overview of BoxKit is available in ``paper/paper.md`` that provides a -summary and statement of purpose for the package. You can compile it -into a pdf by running ``make`` in the ``paper`` directory. Please note -that the ``Makefile`` requires a functioning Docker service on the -machine. +summary and statement of need for the package. You can compile it into a +pdf by running ``make`` in the ``paper`` directory. Please note that the +``Makefile`` requires a functioning Docker service on the machine. ************** Installation From a6067608b165adb67c54d5847227fad868c220d1 Mon Sep 17 00:00:00 2001 From: akashdhruv Date: Wed, 21 Jun 2023 02:15:45 -0500 Subject: [PATCH 3/9] update README --- README.rst | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 7e44bf37..224c03ec 100644 --- a/README.rst +++ b/README.rst @@ -86,11 +86,36 @@ source code and is an effective method for debugging. Note that the Usage ******* +After ``pip`` installation, BoxKit can be imported inside +Python environment by adding, + .. code:: python import boxkit -Add usage details here +to iPython notebooks or scripts. + +Once the library is imported in the environment, simulation +datasets can be loading by executing, + +Reading datasets +**************** +.. code:: python + + dset = boxkit.read_dataset(path_to_hdf5_file, source="flash") + + +New datasets can be created using the ``create_dataset`` command + +Creating datasets +***************** +.. code:: python + + dset = boxkit.create_dataset(*args, **kwargs) + +A full of list of arguments can be found in the documentation. + + ********** Citation From e02912824e6d4962734470ce9b14dd5b2f3a2034 Mon Sep 17 00:00:00 2001 From: akashdhruv Date: Wed, 21 Jun 2023 02:17:08 -0500 Subject: [PATCH 4/9] update README --- README.rst | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/README.rst b/README.rst index 224c03ec..c57db9f5 100644 --- a/README.rst +++ b/README.rst @@ -86,37 +86,34 @@ source code and is an effective method for debugging. Note that the Usage ******* -After ``pip`` installation, BoxKit can be imported inside -Python environment by adding, +After ``pip`` installation, BoxKit can be imported inside Python +environment by adding the following to iPython notebooks and scripts, .. code:: python import boxkit -to iPython notebooks or scripts. - -Once the library is imported in the environment, simulation -datasets can be loading by executing, +Once the library is imported in the environment, simulation datasets can +be loading by executing, Reading datasets -**************** +================ + .. code:: python dset = boxkit.read_dataset(path_to_hdf5_file, source="flash") - New datasets can be created using the ``create_dataset`` command Creating datasets -***************** +================= + .. code:: python dset = boxkit.create_dataset(*args, **kwargs) A full of list of arguments can be found in the documentation. - - ********** Citation ********** From 775ac7cfe8367942c1c4c6098a235ff0d6069f99 Mon Sep 17 00:00:00 2001 From: akashdhruv Date: Wed, 21 Jun 2023 02:30:25 -0500 Subject: [PATCH 5/9] update README --- README.rst | 30 ++++++++++++++++++++++-------- media/performance.png | Bin 0 -> 75136 bytes 2 files changed, 22 insertions(+), 8 deletions(-) create mode 100644 media/performance.png diff --git a/README.rst b/README.rst index c57db9f5..6c39b665 100644 --- a/README.rst +++ b/README.rst @@ -94,19 +94,13 @@ environment by adding the following to iPython notebooks and scripts, import boxkit Once the library is imported in the environment, simulation datasets can -be loading by executing, - -Reading datasets -================ +be read by executing, .. code:: python dset = boxkit.read_dataset(path_to_hdf5_file, source="flash") -New datasets can be created using the ``create_dataset`` command - -Creating datasets -================= +New datasets can be created using the ``create_dataset`` method .. code:: python @@ -114,6 +108,23 @@ Creating datasets A full of list of arguments can be found in the documentation. +|performance| + +********* + Testing +********* + +Testing for BoxKit is performed across different hardware platforms +where high-fidelity simulation data can reside. The sites $\\textemdash$ +acadia and sedona refer to a Mac and Ubuntu operating systems +respectively where regular testing takes place. + +For lightweight testing during pull requests and merger, new tests can +be added to ``tests/container``. Each test should be accompanied with a +coresspoding addition to YAML files located under ``.github/workflows``. +See ``tests/container/heater.py`` and ``.github/workflows/flashx.yaml`` +for an example. + ********** Citation ********** @@ -162,3 +173,6 @@ features, and ask questions about usage .. |icon| image:: ./media/icon.svg :width: 30 + +.. |performance| image:: ./media/performance.png + :width: 100 diff --git a/media/performance.png b/media/performance.png new file mode 100644 index 0000000000000000000000000000000000000000..ec48802bd80f1786de4b3f0e98a020b5148010de GIT binary patch literal 75136 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 z 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 L@g0|=v;d@UVzm;vNlXKzqKOc)!KEe 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 literal 0 HcmV?d00001 From e2701804b844267531400d1b2d6d8ddf30948422 Mon Sep 17 00:00:00 2001 From: akashdhruv Date: Wed, 21 Jun 2023 02:32:17 -0500 Subject: [PATCH 6/9] updating workflows --- .github/workflows/flashx.yml | 1 + .github/workflows/flowx.yml | 1 + .github/workflows/linting.yml | 1 + .github/workflows/minimal.yml | 1 + .github/workflows/publish.yml | 1 + 5 files changed, 5 insertions(+) diff --git a/.github/workflows/flashx.yml b/.github/workflows/flashx.yml index e4d5494f..fd290c98 100644 --- a/.github/workflows/flashx.yml +++ b/.github/workflows/flashx.yml @@ -6,6 +6,7 @@ on: - main - development paths-ignore: + - '**.rst' - '**.md' - 'LICENSE' - 'CITATION' diff --git a/.github/workflows/flowx.yml b/.github/workflows/flowx.yml index 6963cffd..d56a1ecd 100644 --- a/.github/workflows/flowx.yml +++ b/.github/workflows/flowx.yml @@ -6,6 +6,7 @@ on: - main - development paths-ignore: + - '**.rst' - '**.md' - 'LICENSE' - 'CITATION' diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index b42b75b4..e9723b25 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -6,6 +6,7 @@ on: - main - development paths-ignore: + - '**.rst' - '**.md' - 'LICENSE' - 'CITATION' diff --git a/.github/workflows/minimal.yml b/.github/workflows/minimal.yml index f495358f..f4e0c601 100644 --- a/.github/workflows/minimal.yml +++ b/.github/workflows/minimal.yml @@ -6,6 +6,7 @@ on: - main - development paths-ignore: + - '**.rst' - '**.md' - 'LICENSE' - 'CITATION' diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 44e0c3c3..cbd2dd49 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -7,6 +7,7 @@ on: # branches: # - main paths-ignore: + - '**.rst' - '**.md' - 'LICENSE' - 'CITATION' From 75f50f4dad5774b496e6396249516bf83b08ad98 Mon Sep 17 00:00:00 2001 From: akashdhruv Date: Wed, 21 Jun 2023 02:32:53 -0500 Subject: [PATCH 7/9] update README --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 6c39b665..e10ab4d6 100644 --- a/README.rst +++ b/README.rst @@ -175,4 +175,4 @@ features, and ask questions about usage :width: 30 .. |performance| image:: ./media/performance.png - :width: 100 + :width: 1000 From d87639e4c472e3162ad070068c14bb1a5e5bdba6 Mon Sep 17 00:00:00 2001 From: akashdhruv Date: Wed, 21 Jun 2023 02:34:07 -0500 Subject: [PATCH 8/9] update README again --- README.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.rst b/README.rst index e10ab4d6..4c854e2a 100644 --- a/README.rst +++ b/README.rst @@ -108,6 +108,10 @@ New datasets can be created using the ``create_dataset`` method A full of list of arguments can be found in the documentation. +************* + Performance +************* + |performance| ********* From 37857c9a0ac1d737a0eb66709f23b9d175a2984b Mon Sep 17 00:00:00 2001 From: akashdhruv Date: Wed, 21 Jun 2023 02:55:24 -0500 Subject: [PATCH 9/9] update README --- README.rst | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.rst b/README.rst index 4c854e2a..0e815767 100644 --- a/README.rst +++ b/README.rst @@ -135,15 +135,15 @@ for an example. .. code:: - @software{akash_dhruv_2022_7255632, + @software{akash_dhruv_2023_8063195, author = {Akash Dhruv}, - title = {akashdhruv/BoxKit: October 2022}, - month = oct, - year = 2022, + title = {akashdhruv/BoxKit: June 2023}, + month = jun, + year = 2023, publisher = {Zenodo}, - version = {22.10}, - doi = {10.5281/zenodo.7255632}, - url = {https://doi.org/10.5281/zenodo.7255632} + version = {2023.06}, + doi = {10.5281/zenodo.8063195}, + url = {https://doi.org/10.5281/zenodo.8063195} } **************