music

MUSIC, the MUltiSimulation Coordinator

https://github.com/incf/music

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (18.3%) to scientific vocabulary
Last synced: 9 months ago · JSON representation

Repository

MUSIC, the MUltiSimulation Coordinator

Basic Info
  • Host: GitHub
  • Owner: INCF
  • License: gpl-3.0
  • Language: C++
  • Default Branch: master
  • Size: 1.54 MB
Statistics
  • Stars: 41
  • Watchers: 19
  • Forks: 50
  • Open Issues: 43
  • Releases: 3
Created about 11 years ago · Last pushed over 1 year ago
Metadata Files
Readme Changelog License Authors Codemeta

README

* What is MUSIC?

MUSIC is an API allowing large scale neuron simulators using MPI
internally to exchange data during runtime.  MUSIC provides mechanisms
to transfer massive amounts of event information and continuous values
from one parallel application to another.  Special care has been taken
to ensure that existing simulators can be adapted to MUSIC.  In
particular, MUSIC handles data transfer between applications that use
different time steps and different data allocation strategies.

This is the MUSIC pilot implementation.

The two most important components built from this software
distribution are the music library `libmusic.a' and the music utility
`music'.  A MUSIC-aware simulator links against the C++ library and
can be launched using mpirun together with the music utility as
described below.  MUSIC can also be used from a C program using the
API in music-c.h.

MUSIC is distributed under the GNU General Public License v3.


* Required external packages

MUSIC is written in C++ and makes use of the MPI message passing
library.  MUSIC has been tested with versions 1.2 and 1.3 of OpenMPI,
mpich and on BG/L.  A visualization tool `viewevents' can be built if
the GLUT toolkit is installed.

MUSIC version 1.0 makes use of the "long long" data type supported by,
for example, the GNU C++ compiler g++.


* Getting started

MUSIC can be built and installed using the generic installation
instructions found in the file INSTALL.  At the top of the source
distribution directory, do:

./autogen.sh
./configure --prefix=
make
make install

(On some UNIX distributions you might need to run `ldconfig' or define
LD_LIBRARY_PATH:

  export LD_LIBRARY_PATH=/usr/local/lib

for the music utility to find its library.)

A MUSIC co-simulation is specified in a configuration file given as
the first argument to the music utility.  The test subdirectory
contains a collection of examples, for example:

cd test
mpirun -np 4 /usr/local/bin/music demo.music

On some systems, this way of invoking a MUSIC co-simulation isn't
supported. Se blow for an alternative method.


* Compilation and linking flags

configure.ac contains mechanisms which try to identify which MPI
implementation/environment is in use and, based on this, decide
automagically which compiler, compilation flags and linking flags to
use. To circumvent, pass variable definitions ro configure, e.g.:

  ./configure MPI_CXXFLAGS="-g -O3"

The variables are:

MPI_CXX       The compiler to use for MPI code
MPI_CXXFLAGS  C++ compilation flags
MPI_CFLAGS    C compilation flags
MPI_LDFLAGS   Linking flags


* Python support

MUSIC comes with Python bindings. By default, the configure script
looks for a Python interpreter in the path. If you want to use a
particular Python interpreter, you can specify the path to it using
the option --with-python:

./configure --with-python=/my/bin/python

Python support can be disabled using:

./configure --without-python


* Porting

When launching a set of applications in a co-simulation, MUSIC needs
to go outside the MPI standard in two respects:

1. It needs to know the MPI process rank of the running process before
calling MPI::Init.

2. It needs to extract the first argument given to the music utility
before calling MPI::Init.

The configuration script tries to figure out which MPI distribution is
installed and how to compiler MUSIC for that distribution.  The
subdirectory mpidep contains all non-standard code.  If you are trying
to port the MUSIC library to a new version of MPI, please supply new
definitions for the functions getRank and getConfig in
mpidep/mpidep.c.  For more details, see the file PORTING in this
directory.


* Alternative way to invoke MUSIC co-simulations

In case the method of launching MUSIC described under "Getting
started" above fails, there is an alternative method:

Let's assume that we want to launch application A with binary a and Na
processes, and application B with binary b and Nb processes. These are
listed in a standard MUSIC config file ab.music with block labels A
and B. The standard way to launch these would be:

  mpirun -np  music ab.music

(where  is a number). These can alternatively be launched in
MPMD style as:

  mpirun -np Na ./a --music-config ab.music --app-label A : -np Nb ./b --music-config ab.music --app-label B


* Where to find more information

The MUSIC manual and other information can be found on the MUSIC wiki:

  https://github.com/INCF/MUSIC/wiki

Questions and requests can be sent to mdj@pdc.kth.se.


* Submitting bug reports

Bug reports should be submitted as issues on the MUSIC github page:

  https://github.com/INCF/MUSIC/issues

Owner

  • Name: International Neuroinformatics Coordinating Facility (INCF)
  • Login: INCF
  • Kind: organization
  • Email: info@incf.org
  • Location: Stockholm

CodeMeta (codemeta.json)

{
  "@context": "https://w3id.org/codemeta/3.0",
  "type": "SoftwareSourceCode",
  "applicationCategory": "Computational neuroscience",
  "author": [
    {
      "id": " https://orcid.org/0000-0003-2155-7820",
      "type": "Person",
      "affiliation": {
        "type": "Organization",
        "name": "PDC/KTH"
      },
      "email": "mdj@kth.se",
      "familyName": "Djurfeldt",
      "givenName": "Mikael"
    },
    {
      "id": "https://orcid.org/0000-0002-2792-1622",
      "type": "Person",
      "affiliation": {
        "type": "Organization",
        "name": "KTH"
      },
      "email": "ekeberg@kth.se",
      "familyName": "Ekeberg",
      "givenName": "rjan"
    }
  ],
  "codeRepository": "https://github.com/INCF/MUSIC",
  "dateCreated": "2007-09-13",
  "dateModified": "2023-04-03",
  "datePublished": "2009-03-03",
  "downloadUrl": "https://github.com/INCF/MUSIC/releases/download/1.2.1/music-1.2.1.tar.gz",
  "funder": {
    "type": "Organization",
    "name": "INCF, FACETS, The Human Brain Project"
  },
  "keywords": "co-simulation",
  "license": "https://spdx.org/licenses/GPL-3.0-or-later",
  "name": "MUSIC",
  "operatingSystem": [
    "Linix",
    "MacOS"
  ],
  "releaseNotes": "MUSIC 1.2.1 has updates to the Python installation infrastructure. Among other things, it fixes a problem where Python-related files were installed in the wrong location under certain circumstances.",
  "softwareRequirements": [
    "Python 3",
    "MPI",
    "/"
  ],
  "version": "1.2.1",
  "funding": "FP6-2004-IST-FETPI-015879, FP7/2007-2013/604102 (HBP)",
  "issueTracker": "https://github.com/INCF/MUSIC/issues",
  "referencePublication": "https://doi.org/10.1007/s12021-010-9064-z"
}

GitHub Events

Total
  • Issues event: 3
  • Watch event: 5
  • Issue comment event: 25
  • Push event: 3
  • Pull request review event: 1
  • Pull request event: 6
  • Fork event: 14
Last Year
  • Issues event: 3
  • Watch event: 5
  • Issue comment event: 25
  • Push event: 3
  • Pull request review event: 1
  • Pull request event: 6
  • Fork event: 14

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 1
  • Total pull requests: 2
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 31 minutes
  • Total issue authors: 1
  • Total pull request authors: 2
  • Average comments per issue: 2.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 2
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 31 minutes
  • Issue authors: 1
  • Pull request authors: 2
  • Average comments per issue: 2.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • Srishtidh33 (1)
  • JCGoran (1)
Pull Request Authors
  • harinee234567 (1)
  • JCGoran (1)
  • Srishtidh33 (1)
  • Anishka2006 (1)
  • a-detiste (1)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

.github/workflows/ebrains.yaml actions
  • wei/git-sync v3 composite
pymusic-old/setup.py pypi