So#ware/Science Co-‐Development: So%ware Engineering for Large-‐Scale in Silico Neuroscience Research
Prof. Felix Schürmann, Nenad Buncic, Dr. Fabien Delalondre, Stefan Eilemann, Jeffrey Muller [email protected]
EPFL/Blue Brain Project 1
Some Numbers on the Brain
• Rat brain* ~200M (2x108) nerve cells
~130M glial cells
~O(1012) synapses
* Herculano-‐Houzel et al. 2006; **Herculano-‐Houzel 2009; *** Sims et al. 2007
• Each cell – a universe*** ~O(10B) proteins/nerve cell
• Human brain**
~90B (1011) nerve cells ~90B glial cells ~O(1015) synapses
QualitaIve Simulator Landscape*
3/3/14 EPFL/Blue Brain Project 3 * incomplete
Reac[on-‐Diffusion
Molecular Dynamics
Mean Field/Maps/Baysian
Neuron-‐based
NEST, BRIAN, CSIM, MVASpike, C2, …
NEURON, MOOSE, GENESIS, NCS, SPLIT, …
STEPS, MCELL, VCELL, NEURORD, CDS, …
LAMMPS, NAMD, AMBER, GROMACS, ESPRESSO, …
Gaussian, CPMD, CP2K, …
Topographica, MIIND, …
NEURON
• Efficient, domain-‐specific simulator for mul[-‐compartment, conductance-‐based simula[ons of neurons and networks – Efficient (Hines’ algorithm) – Scriptable (python, hoc) – Extensible (NMODL) – Interac[ve (GUI)
• Goes back more than 25 years • Open source • Ac[ve community • Authored and ac[vely supported by Michael
Hines • De-‐facto standard
– More than 25 technical publica[ons on NEURON – More than 1000 scien[fic publica[ons
men[oning NEURON
3/3/14 Blue Brain Project 4
The Blue Brain Project
• pioneers a novel strategy to integrate fragmented biological knowledge into unifying models of brain 1ssue
• develops a unique supercomputer-‐based pla7orm for crea[ng, simula[ng and evalua[ng unifying brain models
• use the plamorm for simula[on-‐based research and tested on a rat’s neocor1cal microcircuit
• Coordinator of the European Flagship Project: Human Brain Project hnp://humanbrainproject.eu
• Funded by public sources • Directed by Prof. Henry Markram
EPFL/Blue Brain Project 5
Modeling
Virtual Experiments Data Model
Analy[cs Visualiza[on
Simula[on
Neuroscience
NeuroinformaIcs
Microcircuit Ultrastructure Cell Experiment Mesocircuit Macrocircuit
Transcriptome
Organism Level Data
Cellular Level Data Predic[ve Reverse
Engineering
Parametric Geometry
Electro-‐dynamics
Connec[vity Rules Plas[city Macroscopic
Effects Physical Chemistry
Subcellular Level Data
Tissue Level Data
MathemaIc AbstracIon
Metabolome Channelome Connectome Genome Physiome Phenome Proteome Receptome
SimulaIon
3/3/14 EPFL/Blue Brain Project 6
Simula[on
..it’s really not just a simulaIon…
Goals for Development
• Innova[on – Allow rapid prototyping – Mul[-‐language support
• Sustainability – Test coverage, documenta[on, standardiza[on, backward compa[bility, etc.
– Needs: • Infrastructure (standardiza[on & automa[on) • Processes (SW lifecycle, development method, release strategy, …) • Guidelines (coding standards, packaging, etc.)
EPFL/Blue Brain Project 7
InnovaIon & Sustainability
• Worlds apart: Sandia TriBITS SW Lifecycle Model
EPFL/Blue Brain Project 8
Exploratory
Research Stable Produc[on Growth Produc[on Maintenance
*
* (Lean/Agile) (Lean/Agile) (Lean/Agile)
prototype
Works! Adopted in produc[on…
• Neeeeeever seen this:
Legacy & Non SW Experts
EPFL/Blue Brain Project 9
-‐ Mandatory for prototypes with >1 user or >1 developer
-‐ Time limited (12 month) – up or out -‐ Migra[on path for exis[ng code -‐ Metrics & requirements adoptable
by scien[sts
Exploratory
Research Stable * (Lean/Agile)
Legacy Codes Non SW Expert
SW Expert Research Development *
<<refactor>>
<<stabilize>>
<<reimplement>>
Non SW Expert
*
Some Features of RD Class
• Git repository • CMake based on standard CMake config
• Adhere to coding guidelines • 40% test coverage • Doxygen • Jira channel for bug tracking • Con[nuous integra[on • Ready for Gerrit code review • Periodic code reviews
EPFL/Blue Brain Project 10
Need to make it suggesIve!
• Pay coffee once in a while…. • Provide templates for novel projects – hnps://github.com/BlueBrain/Hello
• Automate: – U[lize power of CMake
• Tes[ng • Documenta[on • Dependencies check out buildyard for mul[-‐dependency builds: hnps://github.com/Eyescale/Buildyard.git
– Provide stable and automated infrastructure/services • CI services • Puppe[za[on of infrastructure configura[on • API to program infrastructure (PaaS)
EPFL/Blue Brain Project 11
Acknowledgements
• Nenad Buncic – Sec[on Manager Core Services
• Dr. Fabien Delalondre – Sec[on Manager High Performance Compu[ng
• Stefan Eilemann – Sec[on Manager Visualiza[on
• Jeffrey Muller – Sec[on Manager Plamorm Development
Contacts: Prof. Felix Schürmann Blue Brain Project Co-‐Director, Head of Compu[ng Division Email: [email protected]
EPFL/Blue Brain Project 12
hnp://bluebrain.epfl.ch hnp://humanbrainproject.eu