nest-simulator
nest-simulator copied to clipboard
Add documentation regarding HPC systems
This PR adds documentation regarding HPC including
- a general overview of hardware and software components
- an example Slurm script
- explanation of MPI and threading
- reference to beNNch for benchmarking
Pull request automatically marked stale!
@jessica-mitchell, could you comment on the status of this one? The mentioned manuscripts have meanwhile been published
- Kurth AC, Senk J, Terhorst D, Finnerty J and Diesmann M (2022) Sub-realtime simulation of a neuronal network of natural density. Neuromorphic Computing and Engineering(2):021001 (article)
and maybe the workflow for optimizations on HPC would also be interesting to mention:
- Albers J, Pronold J, Kurth AC, Vennemo SB, Mood KH, Patronis A, Terhorst D, Jordan J, Kunkel S, Tetzlaff T, Diesmann M and Senk J (2022) A Modular Workflow for Performance Benchmarking of Neuronal Network Simulations. Frontiers in Neuroinformatics(16):837549 (article)
Pull request automatically marked stale!
This PR is ready for review.
@ackurth @JoseJVS I have a couple of spots with questions as to how to complete the statement, or if the statement is true. Particularly in the slurm_script.rst and mpi_process.rst.
In addition to the parts on opitimizng HPC for NEST there is also a benchmarking part on beNNch that @jasperalbers contributed to.
See output here https://nest-test.readthedocs.io/en/add-hpc-docs/hpc/optimizing_nest.html#optimize-performance https://nest-test.readthedocs.io/en/add-hpc-docs/hpc/benchmarking.html#benchmark
@ackurth Can you also take a look at the text?
@jessica-mitchell I think we should reconsider the intention with these guides, showing how NEST can be optimized with scaling the number of threads and using multiple MPI processes is a good thing, however I think including a guide on thread pinning/process binding is a delicate topic. Although @ackurth explored the performance impact of different thread pinning and process binding affinity schemes in his paper, these types of configurations are not simple to explain and are tightly coupled with the types of machines the user has access to. So trying to explain these topics on short guides would be complicated and worst case scenario would be misleading for the reader. I think for this it would be better to point to the sub-real time paper https://doi.org/10.1088/2634-4386/ac55fc and maybe some additional literature.
@JoseJVS @ackurth I think I made all the suggested changes, as per our discussion a few weeks ago. Many thanks for your insights :) Here is the output https://nest-test.readthedocs.io/en/add-hpc-docs/hpc/optimizing_nest.html#optimize-performance. @ackurth I believe you still have one thing you want to add to the document?
Pull request automatically marked stale!