Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Roadrunner container to enable "under the hood" parallelism #925

Closed
CiaranWelsh opened this issue Dec 3, 2021 · 1 comment
Closed

Roadrunner container to enable "under the hood" parallelism #925

CiaranWelsh opened this issue Dec 3, 2021 · 1 comment

Comments

@CiaranWelsh
Copy link

CiaranWelsh commented Dec 3, 2021

This is more or less a repeat of my comment in this issue.

RoadRunner currently suffers from slow build times which is noticeable when building lots of models. While #921 most likely mitigates some of this, roadrunner still needs to compile every model which is an expensive operation. The new LLJit has a 'number of threads' option but despite setting this to 15, it seems that we are still not using the available computational resources effectively:

image

The problem here is that the although we may be using many threads, we are still using one core. One way we can make better use of the resources available is to build a roadrunner container with an API for batch loading/simulating models. Under the hood, we do the work in parallel, using a Queue to limit the number of active cores to a user specified number. Moreover, this would lower the "activation energy" required for natively supporting HPC scheduling systems like SGE or slurm.

A rough API ( assuming we choose a vector/array like container) would be something like

#include "RoadRunnerVector.h"
using namespace rr;
RoadRunnerVector rrv("path/to/sbml/directory"); 
// OR 
RoadRunnerVector rrv({sbmlFile1, sbmlFile2});

// access and simulate 1 model
rrv[0]->simulate(...);
rrv["MyModel"]->simulate(...). 


// batch simulation. 
rrv->simulate(...); 
rrv->steadystate(...); 
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant