Attention: Data Proxy will be migrated from SWIFT to S3 storage at Friday, the 9th of May 2025 starting from 9pm CEST (my timezone). For more details, please join the rocket chat channel https://chat.ebrains.eu/channel/data-proxy-user-group


Getting Started

Last modified by denker on 2021/08/17 23:05

Collab Workflow

Here, we demonstrate how the simulation-analysis workflow mentioned in the Overview section is concretely realized in this Collab and how it can be used.

Figure 3 illustrates the three building blocks I. Simulation, II.Analysis and III. Visualization together with the Tasks, Jupyter Notebooks, computing resources and storage locations.

Below, you will be guided through each panel of the left navigation bar. Each bullet point corresponds to such an entry.

https://services.humanbrainproject.eu/richtxt-app/resources/5877a7ec-9e40-45be-9a55-fbcbdee3d4e0

Figure 3: Detailed schematic of the workflow realized in the Nest SpiNNaker Elephant Collab.

I. Simulation:

  • Storage: (1 & 7)
    • Jupyter Notebooks microcircuit_notebook.ipynb, parameters_notebook.ipynb, and list_hpc_jobs.ipynb correspond to the respective navigation bar entries (the latter two can be found in Other Notebooks).
    • NEST Demo data -> config: parameter files for a simulation.
    • NEST Demo data -> microcircuit_simulation_code contains Python files of the microcircuit simulation as used by the Microcircuit Notebook.
    • results -> microcircuit_task and results -> microcircuit_notebook:  simulation results.
  • Microcircuit Parameters Notebook (2) in Other Notebooks there is a Jupyter Notebook which demonstrates how to retrieve a file from the Collab's Storage, modify it and save a new version to the Storage. In the example, the file microcircuit.yaml is loaded which contains the default simulation and network parameters for the microcircuit simulation. Such a file with user-defined parameters can be used to configure a simulation started with the Microcircuit Task or the Microcircuit Notebook.
  • Microcircuit Task (3) shows the integration of the microcircuit simulation in the Task framework of the Collaboratory (microcircuit_hpc_task). The simulation can either be run on the local resources (5) of the Collaboratory system itself (currently cscs_viz) or submitted via UNICORE to another HPC site (6). The parameter use_hpc is used to distinguish between both cases. As configuration_file (mime type: application/vnd.juelich.simulation.config), choose the default file microcircuit.yaml or, alternatively, a user-defined version (see Microcircuit Parameters Notebook). For the missing parameters, default values will be used. The parameters simulation_duration, thalamic_input and threads will be overwritten by values provided via the GUI.
    • Tested parameter combinations assuming the default configuration file microcircuit.yaml for the cases without and with HPC via UNICORE:
      • general: simulation_duration: 1000, thalamic_input: False, Output Project: NEST SpiNNaker Elephant Demo/results
      • specific for use_hpc=False (nodes and hpc_url will be ignored) threads: 8, CPU cores: 8, Memory in MB: 15360
      • specific for use_hpc=True (with JUQUEEN as backend, if access is provided) threads: 16, nodes: 32, hpc_url: https://hbp-unic.fz-juelich.de:7112/HBP_JUQUEEN/rest/core, CPU cores: 1, Memory in MB: 2048.
    • The task returns all simulation output in a bundle (mime type: application/vnd.juelich.bundle.nest.data), containing, e.g., spike data in .gdf format (mime type: application/vnd.juelich.nest.spike_times) and a plot of spiking activity and firing rates.
  • List Jobs (HPC) in Other Notebooks allows to monitor the status of a job submitted to an HPC site. Jobs submitted using the Task system can be observed via the Job Manager.
  • Microcircuit Notebook (4) in Other Notebooks is an alternative to the Microcircuit Task which allows to submit a job to an HPAC site (if access is provided) using UNICORE in an interactive way: Here, the simulation code is not part of the task, but files in the Collab's Storage as in the directory microcircuit_simulation_code can be selected manually. The simulation results are finally also transfered to the Storage.
  • After the simulation the microcircuit will produce gdf files with the spike times and unit IDs, to process them further on, e.g., in Elephant (see Analysis part), they need to be converted to HDF5 files. This is possible by using the Conversion task (8). Since the microcircuit produces several files, a bundle, the Convert Nest bundle to NeoHDF5 bundle task in Tasks can convert in an easy way all files to HDF5. But it is also possible to convert single files using the ConvertGDF to NeoHDF5 task.
  • Simulation results from SpiNNaker (9) are uploaded to the Storage.

II. Analysis:

  • Storage: (1)
    • Jupyter Notebooks NEST_SpiNNaker_comparison.ipynb and list_hpc_jobs.ipynb correspond to the respective navigation bar entries (the latter can be found in Other Notebooks).
    • plotting_functions.py is an accompanying Python script for the NEST_SpiNNaker_comparison.ipynb Notebook and delivers plotting functions
    • results -> cch_vista_submit_task: results of the analysis.
  • SpiNNaker - NEST Comparison Notebook (2) is a notebook which has several functions to compare data obtained by the NEST and SpiNNaker simulations. This notebook shows how to load the data and provides also plotting functions (using the plotting_functions.py script, see first point). By calculating the population histogram, mean firing rate, and the distributions of the coefficient of variation (CV) and the Pearson correlation coefficient, and by plotting these measures for NEST and SpiNNaker data in a side by side fashion, the notebook gives an initial understanding of the data and helps in further analyzing the data with more complex methods, e.g., the Pairwise Correlation Task.
  • CCH task (Pairwise Correlation Task) (3):  Allows the user to submit a job to an HPC system (in this case JURECA) via UNICORE (4) using the Task framework of the Collaboratory (cch_vista_submit_task). This task calculates pairwise cross-correlation histograms of the spike trains and, based on Monte-Carlo methods (surrogate), creates  matrices of significance values for the zero-lag correlation. The latter serve as an input for the ViSTA visualization framework (see section III. Visualization).
    • The task needs two HDF5 files to run: One data set from the SpiNNaker simulation and the other from the NEST simulation. They can be selected by a drop down menu, for example if you navigate to Storage you will see a list of HDF5 files:
      • NEST SpiNNaker Elephant Demo -> results -> spinnaker_data
      • NEST SpiNNaker Elephant Demo -> results -> nestBundle2NeoH5_task
    • Furthermore a Python script must be provided as an argument to the task which will be run as a job array on the HPC system, and a second script which collects all intermediate results and bundles them in two HDF5 files:
      • NEST SpiNNaker Elephant Demo -> Elephant Demo data -> cch_cluster_spinnest.py     (input script)
      • NEST SpiNNaker Elephant Demo -> Elephant Demo data -> cch_collect_spinnest.py     (collect script)
    • The number of jobs submitted in the job array on the HPC resource can be set by the task, the default is 100.
    • The returned results (HDF5) will be stored on the collab storage and for further visualization purposes on the dCache file system (see III. Visualization).
    • List Jobs (HPC) allows to monitor the status of a job submitted to an HPC site. Jobs submitted using the Task system can be observed via the Job Manager.

III. Visualization:

  • Upload of the analysis results to dCache (1) and the Storage (2) and visualization with ViSTA (3).