https://github.com/llnl/simutil
Simulation Utility Library for HPC codes
https://github.com/llnl/simutil
hpc simulation
Last synced: 10 months ago
JSON representation
Simulation Utility Library for HPC codes
- Host: GitHub
- URL: https://github.com/llnl/simutil
- Owner: LLNL
- License: mit
- Created: 2018-11-27T18:30:42.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2021-10-19T18:41:01.000Z (over 4 years ago)
- Last Synced: 2025-04-12T05:03:44.051Z (about 1 year ago)
- Topics: hpc, simulation
- Language: C
- Size: 99.6 KB
- Stars: 1
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SimUtil
SimUtil is a utility library that makes it easy to quickly create new
High Performance Computing projects for scientific applications. The
library has proven to scale to over a million concurrent processes and
has been used in multiple Gordon Bell submissions and finalist codes.
The library features routines for
* MPI-aware hierarchical input deck processing
* Unit parsing and dimensional analysis
* PIO output file formats that scale to millions of processors
* Other miscellaneous routines commonly needed in HPC scientific codes.
## Requirements
SimUtil only depends on C99 and MPI. The build system requires CMake
and [BLT](https://github.com/LLNL/blt), unless you wish to replace our
build system with your own.
## Getting Started
We recommend placing SimUtil directly in your build tree using
```git subtree```:
git subtree add --prefix=simutil https://github.com/llnl/simutil.git master
From here, it is a simple matter to integrate SimUtil with your
existing build system
### Using CMake + BLT
The recommended way to include SimUtil in your library is through
[BLT](https://github.com/LLNL/blt). Include BLT as another subtree:
git subtree add --prefix=blt https://github.com/LLNL/blt.git master
Then, place the following lines in your top level CMakeLists.txt:
if (NOT BLT_LOADED)
include(${CMAKE_CURRENT_SOURCE_DIR}/blt/SetupBLT.cmake)
endif()
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/simutil/src)
### Using a regular Makefile
Symlink `include/*.h` and `src/*.c` to the directory of your choice
and add these files to your makefile. You also want add the following
flags:
CFLAGS += -DDiff_Weight_Type_Single -DWITH_PIO -DWITH_MPI
## Contributing
Please submit any bugfixes or feature improvements as [pull
requests](https://help.github.com/articles/using-pull-requests/).
Authors
----------------
Many thanks go to SimUtil's
[contributors](https://github.com/llnl/simutil/graphs/contributors).
* James P Glosli
* Tomas Oppelstrup
* Shiv Sundram
* Xiaohua Zhang
* David F Richards
* Robert Blake
* Michael P Surh
* Fred Streitz
License
----------------
Simutil is distributed under the terms of both the MIT license. All
new contributions must be made under this license.
See [LICENSE](https://github.com/llnl/simutil/blob/master/LICENSE) and
[NOTICE](https://github.com/llnl/simutil/blob/master/NOTICE) for
details.
`SPDX-License-Identifier: (MIT)`
``LLNL-CODE-762538``