9 research outputs found
SBML Level 3: an extensible format for the exchange and reuse of biological models
Systems biology has experienced dramatic growth in the number, size, and complexity of computational models. To reproduce simulation results and reuse models, researchers must exchange unambiguous model descriptions. We review the latest edition of the Systems Biology Markup Language (SBML), a format designed for this purpose. A community of modelers and software authors developed SBML Level 3 over the past decade. Its modular form consists of a core suited to representing reaction-based models and packages that extend the core with features suited to other model types including constraint-based models, reaction-diffusion models, logical network models, and rule-based models. The format leverages two decades of SBML and a rich software ecosystem that transformed how systems biologists build and interact with models. More recently, the rise of multiscale models of whole cells and organs, and new data sources such as single-cell measurements and live imaging, has precipitated new ways of integrating data with models. We provide our perspectives on the challenges presented by these developments and how SBML Level 3 provides the foundation needed to support this evolution
Recommended from our members
Performance-Portable Many-Core Plasma Simulations: Porting PIConGPU to OpenPower and Beyond
With the appearance of the heterogeneous platform Open- Power, many-core accelerator devices have been coupled with Power host processors for the first time. Towards utilizing their full potential, it is worth investigating performance portable algorithms that allow to choose the best-fitting hardware for each domain-specific compute task. Suiting even the high level of parallelism on modern GPGPUs, our presented approach relies heavily on abstract meta-programming techniques, which are essential to focus on fine-grained tuning rather than code porting. With this in mind, the CUDA-based open-source plasma simulation code PIConGPU is currently being abstracted to support the heterogeneous OpenPower platform using our fast porting interface cupla, which wraps the abstract parallel C++11 kernel acceleration library Alpaka. We demonstrate how PIConGPU can benefit from the tunable kernel execution strategies of the Alpaka library, achieving portability and performance with single-source kernels on conventional CPUs, Power8 CPUs and NVIDIA GPUs
Performance-Portable Many-Core Plasma Simulations: Porting PIConGPU to OpenPower and Beyond
With the appearance of the heterogeneous platform OpenPower,many-core accelerator devices have been coupled with Power host processors for the first time. Towards utilizing their full potential, it is worth investigating performance portable algorithms that allow to choose the best-fitting hardware for each domain-specific compute task. Suiting even the high level of parallelism on modern GPGPUs, our presented approach relies heavily on abstract meta-programming techniques, which are essential to focus on fine-grained tuning rather than code porting. With this in mind, the CUDA-based open-source plasma simulation code PIConGPU is currently being abstracted to support the heterogeneous OpenPower platform using our fast porting interface cupla, which wraps the abstract parallel C++11 kernel acceleration library Alpaka. We demonstrate how PIConGPU can benefit from the tunable kernel execution strategies of the Alpaka library, achieving portability and performance with single-source kernels on conventional CPUs, Power8 CPUs and NVIDIA GPUs
Recommended from our members
Alpaka - An Abstraction Library for Parallel Kernel Acceleration
Porting applications to new hardware or programming models is a tedious and error prone process. Every help that eases these burdens is saving developer time that can then be invested into the advancement of the application itself instead of preserving the status-quo on a new platform. The Alpaka library defines and implements an abstract hierarchical redundant parallelism model. The model exploits parallelism and memory hierarchies on a node at all levels available in current hardware. By doing so, it allows to achieve platform and performance portability across various types of accelerators by ignoring specific unsupported levels and utilizing only the ones supported on a specific accelerator. All hardware types (multi-and many-core CPUs, GPUs and other accelerators) are supported for and can be programmed in the same way. The Alpaka C++ template interface allows for straightforward extension of the library to support other accelerators and specialization of its internals for optimization. Running Alpaka applications on a new (and supported) platform requires the change of only one source code line instead of a lot of #ifdefs
PIConGPU, Alpaka, and cupla software bundle for IWOPH 2016 submission
<p>This is the archive containing the software used for evaluations in the publication "Performance-Portable Many-Core Plasma Simulations: Porting PIConGPU to OpenPower and Beyond" submitted to the international workshop on OpenPOWER for HPC 2016.</p>
<p>The archive has the following content:</p>
<p>PIConGPU Kelvin-Helmholtz Simulation code (picongpu-alpaka/):</p>
<ul>
<li> Remote: https://github.com/psychocoderHPC/picongpu-alpaka.git</li>
<li> Branch: topic-scaling</li>
<li> Commit: 1f004c8e0514ad1649f3958a6184878af6e75150</li>
</ul>
<p>Alpaka code (alpaka/):</p>
<ul>
<li>Remote: https://github.com/psychocoderHPC/alpaka.git</li>
<li>Branch: topic-picongpu-alpaka</li>
<li>Commit: 4a6dd35a9aff62e7f500623c3658685f827f73e5</li>
</ul>
<p>Cupla (cupla/):</p>
<ul>
<li>Remote: https://github.com/psychocoderHPC/cupla.git</li>
<li>Branch: topic-dualAccelerators</li>
<li>Commit: 4660f5fd8e888aa732230946046219f7e5daa1c9</li>
</ul>
<p>The simulation was executed for one thousand time steps and the following configuration:</p>
<ul>
<li> shape is higher then CIC, we used TSC</li>
<li> pusher is Boris</li>
<li> current solver is Esirkepov (optimized, generalized)</li>
<li> Yee field solver</li>
<li> trilinear interpolation in field gathering</li>
<li> 16 particles per cell</li>
</ul>
<p>Compile flags:</p>
<ul>
<li>CPU g++-4.9.2: -g0 -O3 -m64 -funroll-loops -march=native -ffast-math --param max-unroll-times=512</li>
<li>GPU nvcc: --use_fast_math --ftz=false -g0 -O3 -m64</li>
</ul