Skip to content

Commit 621a003

Browse files
committed
Added README.md & original modification time & deleted files
1 parent fc4b865 commit 621a003

File tree

3 files changed

+95712
-0
lines changed

3 files changed

+95712
-0
lines changed

README.md

+59
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
This is Nbody6++GPU - Beijing version, an N-body star cluster simulation code, maintained by Rainer Spurzem (spurzem/at/nao.cas.cn) and team. The starting commits of this repo put all old versions of Nbody6++GPU from Dec 2017 into Git system for version control.
2+
3+
The code is an offspring of Sverre Aarseth's direct N-body codes see www.sverre.com .
4+
5+
This is the code suitable for parallel and GPU accelerated runs on supercomputers and workstations.
6+
7+
8+
# Documentation
9+
Manual in `doc/nbody6++_manual.pdf`
10+
11+
12+
# Recommended usage:
13+
## (optional) to enable HDF5
14+
```bash
15+
apt-get install libhdf5-openmpi-dev
16+
apt-get install libhdf5-dev
17+
```
18+
## build
19+
```bash
20+
./configure --with-par=b1m --enable-simd=sse --enable-mcmodel=large
21+
make clean ; make -j
22+
```
23+
It is for up to one million bodies with many initial binaries. The configure script written by
24+
Long Wang has a multitude of further options, check in it or ask.
25+
26+
Sources are in src/Main/ . Due to urgent bugfixes few routines are later then Dec2020.
27+
28+
After make you find the executable and object files in build/ .
29+
30+
## Tips
31+
The environment variable OMP_NUM_THREADS has to be set to the desired value of
32+
OpenMP threads per MPI process. (Maybe your system has it predefined). I also recommend to set
33+
OMP_STACKSIZE=4096M the shell where you run the code.
34+
35+
It is inefficient (and even more error prone) for particle numbers below about 50k-100k particles (depending on hardware). For smaller N you are advised to use Nbody6 and Nbody6GPU for single node/process.
36+
37+
It is recommended to provide a dat.10 file in N-body input format (see manual). Such file can be produced by other prograns, like mcluster.
38+
39+
40+
# Seleted References:
41+
- https://ui.adsabs.harvard.edu/abs/1999PASP..111.1333A/abstract (Aarseth: NBODY1 to NBODY6)
42+
- https://ui.adsabs.harvard.edu/abs/1999JCoAM.109..407S/abstract (Spurzem on NBODY6++)
43+
- https://ui.adsabs.harvard.edu/abs/2005MNRAS.363..293H/abstract (Hurley+ on SSE/BSE, earlier references therein)
44+
- https://ui.adsabs.harvard.edu/abs/2012MNRAS.424..545N/abstract (Nitadori+: NBODY6GPU)
45+
- https://ui.adsabs.harvard.edu/abs/2015MNRAS.450.4070W/abstract (Wang+: NBODY6++GPU)
46+
- https://ui.adsabs.harvard.edu/abs/2021arXiv210508067K/abstract (Kamlah+: More on current stellar evol.)
47+
48+
49+
# Known Problems:
50+
1. For systems with more than one GPU on one node the association of MPI rank id and GPU bus id is not
51+
well defined, will be improved in next version.
52+
2. Runs with a million or more bodies and huge numbers of binaries (5% or more) use extreme amounts of
53+
computing time for the KS binaries (much much more than should be expected). We work on this.
54+
3. On some systems heap and stack management when using OpenMP and MPI together seem to produce very
55+
strange errors and segmentation faults. The exact reason is not known; we work on this.
56+
57+
58+
# Disclaimer
59+
This code and the documentation is given without warranty, hopefully it is helpful. All may contain errors.

0 commit comments

Comments
 (0)