Skip to content

April 2020

Ioannis Magkanaris edited this page Apr 20, 2020 · 22 revisions

Time: 17.3.2020, 16:00 CEST; 10:00 EST Place: Zoom
(please contact one of the NEURON developers for the link if you are interested to join)

Agenda

  • Welcome & defining the scope of these meetings (2 min)
  • NEURON News (3 min)
  • New NEURON python wheels (5 mins)
  • Distro packaging (.deb, .rpm, ...) (5 mins)
    • Very much need a debian installer that deals properly with dependencies. CMake allows a good start on this.
  • Concrete plan for NEURON version 8.0 (5 mins)
  • Documentation integration : 5 mins
    • Current Status
    • Next Steps : How / When
  • Channel/Cell level validation efforts for NEURON/CoreNEURON/NMODL (5 - 10 mins)
  • Software Engineering of NEURON codebase: (5-10 mins)
    • practicalities
    • How / When
    • Which parts to start with : HOC/NMODL/Solver/legacy libraries
  • Technical discussion on issues:
    • What to do about readline? (see issue #451). A tentative solution is in branch nrn-rl-getc .
    • Sundials v 5. Very different NVector for threads and mpi. NEURON currently uses homemade implementations for these. See branch cvode3. A subbranch, idainit, is much more robust for IDA initialization but comes at a cost of an extra algebraic variable for each extracellular layer, i.e. vm = vi - ve .
    • The newabi3 branch is stuck. See issue #338 . The latest CYTHON that supports translation with #define Py_LIMITED_API generates many errors during compilation of the CYTHON \*.cpp files generated from the *.pyx files in the rxd module.
  • github milestones - a quick tutorial (2 min)
    • A brief introduction on how to use github milestones to structure our work and prioritize issues

Meeting Minutes

Supporting slides

April 2020 Time: 17.3.2020, 16:00 CEST; 10:00 EST Place: Zoom

Present

  • Michael Hines
  • Robert McDougal
  • Salvador Dura-Bernal
  • Bill Lyton
  • James King
  • Pramod Kumbhar
  • Omar Awile
  • Fernando Pereira
  • Ioannis Magkanaris
  • Alexandru Savulescu
  • Alessandro Cattabiani
  • Ted Carnevale
  • Wouter Klijn
  • Blake Caldwell
  • Mainak Jas

Discussion

  • OA: Agenda and meetings in github wiki
  • OA: Goal of meeting to inform new developers and people interested. Towards the end we can discuss and take decisions
  • WK: Core simulation interested in joining future meetings and working with NEURON

NEURON News

New NEURON python wheels

  • Testing new NEURON python wheels
  • BL: Are Windows targeted? PK/FP: Not yet, in the future
  • pip install neuron will give you fully functional NEURON (like numpy and all python packages) including nrnivmodl. The only thing expected is a compiler available and all should work.
  • TC: Windows compatibility is essential if (1) this is to be used by garden variety neuroscientists, and (2) courses are to be accessible to non-experts PK: agree, let's discuss that as well
  • In the future we can include more packages like IV, then MPI and others.
  • Shipping NEURON with MPI is essential to run parallelized code and simulations with large circuits. It is also needed during testing and NEURON courses.
  • BC: Just want to add the HNN use case (hnn.brown.edu), we need MPI, but we install the openmpi package for the native OS. PK: We will take care of that.

Distro packaging for NEURON

  • Distribution of NEURON with CoreNEURON and NMODL would be nice, at least for Intel processors first.
  • Keep two different ways of installing NEURON. Building from source and through wheels
  • MH: IV in mac will be dynamic if xquartz is installed and will come with the wheels in linux.
  • OA: What is required for Linux binary distribution packaging? For autotools there are already some scripts. MH: Only missing piece for the old build system is CoreNEURON. I'm waiting for the NMODL wheel. The Debian package is derived from rpm package and lacks features like a good list of prerequisites that need to be installed. It is also based on cmake.
  • BL: Binary distributions are for Alpha or releases?
  • MH: Would like to do this in CI (Travis) PK: Wheel for releases using CI and nightly builds generated. Next task is to create deb and rpm under Travis. Before that we need to complete work with wheels.
  • BL: Good to have nightly builds. OA: After we have the CI working we can decide the frequency of rebuilds.
  • Concrete plan for version 8.0
  • High level features missing from version 8.0.0 is the distribution of CoreNEURON with NEURON, at least for Intel CPUs.
  • PK: nrnvimodl-core might need to be cleaned (paths, etc) to distubte CoreNEURON with wheels/other binary distribution and we haven’t started working on that.
  • MH: question to RMD: GUI redirect is part of master but without graphical interface. Is this supposed to be part of 8.0. RMD: Cleaned it up with Lia, works as standalone as long as 8.0 provides backend. Not including full features next month. In the future we can use it as a standalone package inside NEURON. PK: New GUI of NEURON? RMD: We decoupled the NEURON GUI stuff to be able to be handled externally and NEURON GUI uses that. The idea is that you can use old or new GUI implementation.
  • RMD: Would be nice to see a bugfix release if not 8.0.

Documentation integration

  • OA: We have doxygen integrated, sphinx, etc documentation generated.
  • OA: We should start updating the documentation. Instead of doing it right now and build it while we work on it.
  • MH: Doxygen shows nicely relations between classes, variables, code, etc. Could this be integrated into git and explore code using doxygen? OA: This can be done like NMODL and get it generated automatically.

Channel/Cell level validation efforts for NEURON/CoreNEURON/NMODL

  • PK: Purpose of this is to verify that changes in simulation results are okay and validate that changes in solvers, NEURON, CoreNEURON are correct. Execution in different platforms might generate different results. How shall we test this (nightly) to ensure that everything works?
  • AC: Two different suggestions: 1. Use a standard configuration to run with NEURON/CoreNEURON the mod files generated and compare the traces with sqrt error to validate the results. 2. Use nmodl/modc and treat binary files as black boxes and compare the results.
  • BL: Randomized input and quality check. NetPyNE keeps old NEURON versions for reproducibility.
  • BL: Compare traces and find out if there is small error between them.
  • TC: We need to define the test problems. Make sure that there is no way to diverge exponentially by a small error. We need to come up with a set of test problems to evaluate.
  • One spike might change the spikes in the future a lot. Reference to: https://paperpile.com/shared/12mlem
  • FP: Create mode of output in NEURON only for validation. BL: Something similar is done in NetPyNE.
  • OA: Networks are scary so maybe we should focus in single cells and then networks.
  • SDB: Small errors might lead in different spikes.
  • BL: Qualitative differences in similar networks.

Software Engineering of NEURON codebase

  • Skipped due to time constraint

Technical discussion on issues

  • Skipped due to time constraint

Github milestones

  • OA: We can do small tutorials in each NEURON dev meeting.
  • PK: We are all in the neuron-dev group so we can create issues and assign them to milestones.

Action Items

  • Next meeting May 15, 2020, 16:00 CEST; 10:00 EDT
  • Addition of IV and MPI in wheel
  • Check addition of CoreNEURON in wheel
  • Wheel Windows support
  • Generate wheels and binary distributions for releases using Travis CI for all systems (also distributions for nightly or more frequent builds)
  • Binary distribution of CoreNEURON
  • Make sure that all NEURON documentation is available inside NEURON or there are visible links that refer to it
  • Check if gh-pages documentation is updated with latest NEURON
  • Discuss about NEURON/CoreNEURON/NMODL validation in next meeting
  • Start using GitHub milestones

Next meeting May 15, 2020, 16:00 CEST; 10:00 EDT

Clone this wiki locally