Version 24 (modified by mmamonski, 12 years ago) (diff) |
---|
Documentation
The MUSCLE library contains the API and configuration necessary to implement a multiscale model. Neither depends on the hardware that the model will executed on, whether that is local, distributed, or through a job scheduler. When using the Java API, the principle is write once, use everywhere. For C/C++ code, recompilation might be necessary depending on the operating system and hardware, but if the submodel code is standards-compliant, this should not pose a problem.
The MUSCLE runtime environment is then able to run the multiscale model on different resources. The actual runtime location only depends on the command-line arguments given to MUSCLE, not on the implementation of the submodels.
For getting started, see the Installation section.
The MUSCLE library
The MUSCLE library contains the means to write a submodel and couple it to other submodels. The design is such that submodels do not have to know with which other submodels they communicate, and the coupling is fixed later during configuration phase. The Java API is the most extensive, while the C++ and Fortran API provide the basic needed functionality. Also for performance reasons it may make sense to use the Java API.
Configuration is done with a Ruby file with some MUSCLE-specific commands, here the coupling can be specified.
To compile the model code, MUSCLE should be added to compile path.
The real world example
The MUSCLE runtime environment
The runtime environment is managed by the muscle2 command-line program. It can be directly called, or through services such as QCG-Broker. Finally, if MUSCLE will be executed across multiple clusters, the MUSCLE transport overlay can be run to forward all traffic from MUSCLE.
Manual Execution
Tools and Services
- QCG-SimpleClient (Command-line, single cluster)
- QCG-Icon (Desktop application, single cluster)
- QCG-AdvancedClient (Command-line, single and cross-cluster)
- MaMe, MAD, GridSpace, QCG Toolchain (Web application, single and cross-cluster)