Skip to content

Commit

Permalink
formatting bibliography; clarifying paper
Browse files Browse the repository at this point in the history
  • Loading branch information
jonrkarr committed Jun 30, 2020
1 parent 2e5858f commit 961d28f
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 32 deletions.
30 changes: 15 additions & 15 deletions joss_paper/paper.bib
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
@inproceedings{goldberg2016toward,
title={Toward scalable whole-cell modeling of human cells},
author={Goldberg, Arthur P. and Chew, Yin Hoon and Karr, Jonathan R.},
booktitle={Proceedings of the 2016 ACM SIGSIM Conference on Principles of Advanced Discrete Simulation},
booktitle={Proceedings of the ACM SIGSIM Conference on Principles of Advanced Discrete Simulation},
pages={259--262},
year={2016}
}
Expand All @@ -25,7 +25,7 @@ @book{banks2005discrete
}

@article{dahl1966simula,
title={SIMULA: an ALGOL-based simulation language},
title={{SIMULA}: an {ALGOL}-based simulation language},
author={Dahl, Ole-Johan and Nygaard, Kristen},
journal={Communications of the ACM},
volume={9},
Expand All @@ -38,37 +38,37 @@ @article{dahl1966simula
@incollection{nygaard1978development,
title={The development of the {SIMULA} languages},
author={Nygaard, Kristen and Dahl, Ole-Johan},
booktitle={History of programming languages},
booktitle={History of Programming Languages},
pages={439--480},
year={1978}
}

@inproceedings{mueller2001simulation,
title={The simulation semantics of SystemC},
title={The simulation semantics of {SystemC}},
author={Mueller, Wolfgang and Ruf, Juergen and Hoffmann, Dirk and Gerlach, Joachim and Kropf, Thomas and Rosenstiehl, Wolfgang},
booktitle={Proceedings Design, Automation and Test in Europe. Conference and Exhibition 2001},
booktitle={Proceedings Design, Automation and Test in Europe Conference and Exhibition},
pages={64--70},
year={2001},
organization={IEEE}
}

@article{ieee2012ieee,
title={IEEE Standard for standard {SystemC} language reference manual},
title={{IEEE} Standard for standard {SystemC} language reference manual},
author={{IEEE Standards Association}},
journal={IEEE Computer Society},
year={2012}
}

@inproceedings{concannon2003dynamic,
title={Dynamic scheduling II: SIMUL8-planner simulation-based planning and scheduling},
title={Dynamic scheduling {II}: {SIMUL8}-planner simulation-based planning and scheduling},
author={Concannon, Kieran H and Hunter, Kim I and Tremble, Jillian M},
booktitle={Proceedings of the 35th conference on Winter simulation: driving innovation},
booktitle={Proceedings of the 35th Conference on Winter simulation},
pages={1488--1493},
year={2003}
}

@misc{goldberg2020wc_sim,
title = {WC-Sim: A multi-algorithmic simulator for whole-cell models},
title = {{WC-Sim}: a multi-algorithmic simulator for whole-cell models},
author={Goldberg, Arthur P. and Karr, Jonathan R.},
howpublished = {Available at: \url{https://github.com/KarrLab/wc_sim}},
note = {Accessed: 2020-06-17},
Expand Down Expand Up @@ -106,20 +106,20 @@ @article{Jefferson1985
keywords = {and phrases,concurrency},
number = {3},
pages = {404--425},
title = {{Virtual time}},
title = {Virtual time},
volume = {7},
year = {1985}
}

@inproceedings{Barnes2013,
address = {Montr{\`{e}}al},
author = {Barnes, Jr, Peter D and Carothers, Christopher D and Jefferson, David R and Lapre, Justin M},
booktitle = {SIGSIM-PADS'13},
booktitle = {Proceedings of the ACM SIGSIM Conference on Principles of Advanced Discrete Simulation},
isbn = {9781450319201},
keywords = {blue gene,parallel discrete-event simulation,q,time warp},
pages = {327--336},
publisher = {Association for Computing Machinery},
title = {{Warp Speed : Executing Time Warp on 1,966,080 Cores}},
title = {Warp speed: executing {Time Warp} on 1,966,080 cores},
year = {2013}
}

Expand All @@ -133,16 +133,16 @@ @article{Carothers2000
journal = {Proceedings Fourteenth Workshop on Parallel and Distributed Simulation},
keywords = {Computational modeling,Computer science,Computer simulation,Discrete event simulation,Georgia Tech Time Warp,High performance computing,Kernel,Network servers,PDES,Personal communication networks,ROSS,Rensselaer Optimistic Simulation System,Telephony,Time Warp protocols,Time warp simulation,aggregation,event rates,fast GVT algorithm,fossil collection overheads,global virtual time,high-performance low-memory modular time-warp syst,kernel processes,memory buffers,memory protocols,modular kernel,pointer-based implementation framework,processed event lists,quad processor PC server,radio access networks,reverse computation,shared memory multiprocessors,stable efficient parallel execution,storage management,telecommunication computing,telephone networks,time warp simulation,wireless telephone network model,workstation clusters},
pages = {53--60},
title = {{ROSS: a high-performance, low memory, modular time warp system}},
title = {{ROSS}: a high-performance, low memory, modular time warp system},
url = {http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=847144},
volume = {62},
year = {2000}
}

@inproceedings{fujimoto1990performance,
title={Performance of Time Warp under synthetic workloads},
title={Performance of {Time Warp} under synthetic workloads},
author={Fujimoto, Richard M},
booktitle={Proceedings of the SCS Multiconference on Distributed Simulations, 1990},
booktitle={Proceedings of the SCS Multiconference on Distributed Simulations},
volume={22},
number={1},
pages={23--28},
Expand Down
31 changes: 14 additions & 17 deletions joss_paper/paper.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: 'DE-Sim: An Object-Oriented Discrete-Event Simulator in Python'
title: 'DE-Sim: an object-oriented discrete-event simulation tool for complex, data-driven modeling'
tags:
- dynamical modeling
- simulation
Expand Down Expand Up @@ -27,11 +27,11 @@ bibliography: paper.bib

A central challenge in science is to understand how systems behaviors emerge from complex networks. For example, systems biology seeks to understand how cellular phenotypes emerge from complex biochemical networks. Due to recent advances in data collection and storage, many scientific fields now have extensive data about a wide range of complex networks. Larger and more comprehensive models, such as models of entire cells [@karr2015principles, @goldberg2018emerging, @karr2012whole], are needed to decipher this data. However, it remains difficult to build and simulate complex models.

One of the most promising methods for simulating large models is discrete-event simulation (DES). DES represents a system as a collection of processes that can read the values of a set of shared variables and create events to modify their values at discrete instants in time. DES is ideal for large models because its discrete structure is conducive to parallel execution. For example, Barnes et al. have executed DES models using nearly 2 million cores [@Barnes2013]. Several DES frameworks are available. This includes basic frameworks such as SimPy [@matloff2008introduction] which enable scientists to implement models using functional programming; high-performance, parallelized, object-oriented frameworks such as POSE [@wilmarth2005pose] and ROSS [@carothers2002ross] which support C-based models; and commercial frameworks such as Simula8 [@concannon2003dynamic] which provide proprietary languages for describing models. DES has been applied to a wide range of models. For example, epidemiologists have used DES to simulate the transmission of infectious disease, computer engineers have used DES to simulate distributed computer networks, and the military often uses DES to simulate wars [@banks2005discrete]. However, it remains challenging to use DES for large data-driven models. It is difficult to implement complex models using functional frameworks such as SimPy, and it is difficult to use high-level data science tools such as Pandas [@mckinney2010data] with C-based frameworks such as POSE and ROSS.
One of the most promising methods for simulating large models is discrete-event simulation (DES). DES represents a system as a collection of processes that can read the values of a set of shared variables and schedule events to modify their values at discrete instants in time. DES is ideal for large models because its discrete structure is conducive to parallel execution. For example, Barnes et al. have executed DES models using nearly 2 million cores [@Barnes2013]. Several DES tools are available. This includes basic tools such as SimPy [@matloff2008introduction] which enable scientists to implement models using functional programming; high-performance, parallelized, object-oriented tools such as POSE [@wilmarth2005pose] and ROSS [@carothers2002ross] which support C-based models; and commercial tools such as Simula8 [@concannon2003dynamic] which provide proprietary languages for describing models. DES has been applied to a wide range of models. For example, epidemiologists have used DES to simulate the transmission of infectious disease, computer engineers have used DES to simulate distributed computer networks, and the military often uses DES to simulate wars [@banks2005discrete]. However, it remains challenging to use DES for large data-driven models. It is difficult to implement complex models using functional tools such as SimPy, and it is difficult to use high-level data science tools such as pandas [@mckinney2010data] with C-based tools such as POSE and ROSS.

To make it easier to construct and simulate complex, data-driven models, we used Python to develop DE-Sim, an open-source, object-oriented discrete-event simulation framework. Because DE-Sim is implemented in Python, DE-Sim makes it easy to use Python-based data science tools such as NumPy [@oliphant2006guide], Pandas, SciPy [@virtanen2020scipy], and SQLAlchemy [@bayer2020sqlalchemy] to build models and analyze simulation results. We have extensively tested and documented DE-Sim. As described below, DE-Sim is freely available from GitHub and PyPI.
To make it easier to construct and simulate complex, data-driven models, we used Python to develop DE-Sim, an open-source, object-oriented discrete-event simulation tool. Because DE-Sim is implemented in Python, DE-Sim makes it easy to use high-level data science tools such as NumPy [@oliphant2006guide], pandas, SciPy [@virtanen2020scipy], and SQLAlchemy [@bayer2020sqlalchemy] to build models and analyze simulation results. We have extensively tested and documented DE-Sim. As described below, DE-Sim is freely available from GitHub and PyPI.

Here, we describe the models that DE-Sim enables, outline the features of DE-Sim, provide a brief tutorial of building and simulating models with DE-Sim, analyze the performance of DE-Sim, summarize how we are using DE-Sim to develop WC-Sim [@goldberg2020wc_sim], a simulator for whole-cell models, and describe the advantages of DE-Sim over existing DES frameworks. Additional examples, tutorials, installation instructions, and source code documentation are available at [https://github.com/KarrLab/de_sim](https://github.com/KarrLab/de_sim).
Here, we describe the models that DE-Sim enables, outline the features of DE-Sim, provide a brief tutorial of building and simulating models with DE-Sim, analyze the performance of DE-Sim, summarize how we are using DE-Sim to develop WC-Sim [@goldberg2020wc_sim], a simulator for whole-cell models, and describe the advantages of DE-Sim over existing DES tools. Additional examples, tutorials, installation instructions, and source code documentation are available at [https://github.com/KarrLab/de_sim](https://github.com/KarrLab/de_sim).

# Need: simpler tools for building and simulating data-driven models

Expand All @@ -50,16 +50,13 @@ We plan to speed up whole-cell models of human cells with parallel simulation in

# Key features

DE-Sim offers the following features:
To help users build and simulate complex, data-driven models, DE-Sim provides the following features:

* **Object-oriented Python models:** DE-Sim enables researchers to use object-oriented Python programming to build models. This makes it easy to use large datasets and packages such as NumPy, Pandas, SciPy, and SQLAlchemy to build complex data-driven models.
* **Stop conditions:** DE-Sim make it easy to use Python functions to implement stop conditions. These functions simply must return true when the simulation state has reached one or more stop conditions.
* **Recording simulation trajectories:** DE-Sim can record the results of each simulation, as well as metadata such as its start time, run time, and the IP address of the machine which executed the simulation.
* **Space-time visualizations:** DE-Sim can generate space-time visualization of simulation trajectories (\autoref{fig:phold_space_time_plot}). These diagrams can be valuable tools for understanding and debugging models.
* **Checkpointing:** DE-Sim can checkpoint the state of simulations. These checkpoints can be used to restart or debug simulations. Checkpointing is particularly helpful for using DE-Sim on clusters that have short execution limits or for using DE-Sim on spot-priced virtual machines in the commercial cloud.
* --
* **Simulation configuration:** DE-Sim simulations can be configured using simple text files. These files can be used to control XXX.
* **Model validation:** Extensive error detection
* **High-level, object-oriented modeling:** DE-Sim makes it easy for researchers to use object-oriented Python programming to build models. This makes it easy to use large, heterogeneous datasets and high-level data science packages such as NumPy, pandas, SciPy, and SQLAlchemy to build complex models.
* **Powerful stop conditions:** DE-Sim makes it easy to implement complex stop conditions. Stop conditions can be implemented as simple Python functions that return true when the simulation state reaches the desired stop condition.
* **Simple simulation logging:** DE-Sim provides tools for recording the results of simulations, as well as metadata such as the start and run time of each simulation.
* **Space-time visualizations for analysis and debugging:** DE-Sim can generate space-time visualizations of simulation trajectories (\autoref{fig:phold_space_time_plot}). These diagrams are valuable tools for understanding and debugging models.
* **Checkpointing for restarting and debugging:** DE-Sim can checkpoint the state of simulations. These checkpoints can be used to restart or debug simulations. Checkpointing is particularly helpful for using DE-Sim on clusters that have short time limits, or for using DE-Sim on spot-priced virtual machines in commercial clouds.

![A space-time visualization of all messages and events in an 8 time unit simulation of the PHOLD parallel DES benchmark with exponentially-distributed event delays with $\mu=1$ and a probability of 0.5 of objects scheduling the next event for themselves [@fujimoto1990performance; @Barnes2013].
A timeline for each object shows its events as gray dots.
Expand Down Expand Up @@ -149,14 +146,14 @@ We present the statistics of three runs made in a Docker container executing on

# Case study: a simulator for whole-cell models

# Comparison with other DES frameworks
# Comparison with other DES tools

* Low-level frameworks in high-level languages
* Low-level tools in high-level languages
* SimPy
* High-performance C-based frameworks
* High-performance C-based tools
* POSE
* ROSS
* Commercial frameworks with proprietary modeling languages
* Commercial tools with proprietary modeling languages
* Simul8

# Availability
Expand Down

0 comments on commit 961d28f

Please sign in to comment.