Parallel grid library for rapid and flexible simulation development
We present an easy to use and flexible grid library for developing highly scalable parallel simulations. The distributed cartesian cell-refinable grid (dccrg) supports adaptive mesh refinement and allows an arbitrary C++ class to be used as cell data. The amount of data in grid cells can vary both i...
Uloženo v:
| Vydáno v: | Computer physics communications Ročník 184; číslo 4; s. 1297 - 1309 |
|---|---|
| Hlavní autoři: | , , , , |
| Médium: | Journal Article |
| Jazyk: | angličtina |
| Vydáno: |
Elsevier B.V
01.04.2013
|
| Témata: | |
| ISSN: | 0010-4655, 1879-2944 |
| On-line přístup: | Získat plný text |
| Tagy: |
Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
|
| Shrnutí: | We present an easy to use and flexible grid library for developing highly scalable parallel simulations. The distributed cartesian cell-refinable grid (dccrg) supports adaptive mesh refinement and allows an arbitrary C++ class to be used as cell data. The amount of data in grid cells can vary both in space and time allowing dccrg to be used in very different types of simulations, for example in fluid and particle codes. Dccrg transfers the data between neighboring cells on different processes transparently and asynchronously allowing one to overlap computation and communication. This enables excellent scalability at least up to 32 k cores in magnetohydrodynamic tests depending on the problem and hardware. In the version of dccrg presented here part of the mesh metadata is replicated between MPI processes reducing the scalability of adaptive mesh refinement (AMR) to between 200 and 600 processes. Dccrg is free software that anyone can use, study and modify and is available at https://gitorious.org/dccrg. Users are also kindly requested to cite this work when publishing results obtained with dccrg.
Program title: DCCRG
Catalogue identifier: AEOM_v1_0
Program summary URL:http://cpc.cs.qub.ac.uk/summaries/AEOM_v1_0.html
Program obtainable from: CPC Program Library, Queen’s University, Belfast, N. Ireland
Licensing provisions: GNU Lesser General Public License version 3
No. of lines in distributed program, including test data, etc.: 54975
No. of bytes in distributed program, including test data, etc.: 974015
Distribution format: tar.gz
Programming language: C++.
Computer: PC, cluster, supercomputer.
Operating system: POSIX.
The code has been parallelized using MPI and tested with 1–32768 processes
RAM: 10 MB–10 GB per process
Classification: 4.12, 4.14, 6.5, 19.3, 19.10, 20.
External routines: MPI-2 [1], boost [2], Zoltan [3], sfc++ [4]
Nature of problem:
Grid library supporting arbitrary data in grid cells, parallel adaptive mesh refinement, transparent remote neighbor data updates and load balancing.
Solution method:
The simulation grid is represented by an adjacency list (graph) with vertices stored into a hash table and edges into contiguous arrays. Message Passing Interface standard is used for parallelization. Cell data is given as a template parameter when instantiating the grid.
Restrictions:
Logically cartesian grid.
Running time:
Running time depends on the hardware, problem and the solution method. Small problems can be solved in under a minute and very large problems can take weeks. The examples and tests provided with the package take less than about one minute using default options.
In the version of dccrg presented here the speed of adaptive mesh refinement is at most of the order of 106 total created cells per second.
References:[1]http://www.mpi-forum.org/.[2]http://www.boost.org/.[3]K. Devine, E. Boman, R. Heaphy, B. Hendrickson, C. Vaughan, Zoltan data management services for parallel dynamic applications, Comput. Sci. Eng. 4 (2002) 90–97. http://dx.doi.org/10.1109/5992.988653.[4]https://gitorious.org/sfc++. |
|---|---|
| Bibliografie: | ObjectType-Article-1 SourceType-Scholarly Journals-1 ObjectType-Feature-2 content type line 23 |
| ISSN: | 0010-4655 1879-2944 |
| DOI: | 10.1016/j.cpc.2012.12.017 |