Related Documentation:

GENESIS: Documentation

1 The TODO and the DONE List

This document contains a list of functions and descriptions that need to be implemented or incorporated in the software or software infrastructure. The level of detail of the descriptions can vary between items. After an item is described, it can be followed by a checklist with information of the level of implementation. For example, subitems in the checklist can be marked with the word ‘DONE’.

This document can grow when people add new functions that await implementation, and it can be consolidated by moving items that have been completed from the TODO list to the DONE list. Items are never removed from the DONE list.

This TODO list was built on December 28, 2015, 8:13.

2 G-3 Release TODO List

2.1 Add Network Modeling Support

Network modeling support still requires substantial development on one software component, and also impacts other software components.

Time Estimate3 weeks

Assigned to Hugo

2.2 ns-sli installed G-2 scripts

2.3 symmetric compartments (2)

Connect the NEURON compartmental solver to the model-container.

Time Estimate

Assigned to Hugo

2.4 Slow operations on MAC OSX

Heavy memory operations such as pqsetall run slowly on Mac OSX to the point of causing several tests to fail. Test errors are inconsistent, and different tests will fail on different test runs.

Time Estimate? day for a detailed diagnosis

Assigned to Mando

2.5 Stalling error on MAC OSX

There is an issue with stalling on the Mac OSX Leopard. The result is a stalled process with no CPU activity. The error is inconsistent and only seems to occur when the target machine is running other high memory tasks. From examining the state of the process during the lock it appears to be a system lock on a print statement.

The stall error currently occurs during the nesting.t test sometime after pqsetall has been called.

A similar problem was found here on the Apple forums.

The same type of stall occurred previously when running the command ./neurospacesparse -v 1 -q legacy/networks/supernetwork.ndf in the model container function QueryHandlerPrintSpikeRecieverCount() . This stall error has not been observed in well over a year when running this command and currently does not produce it.

A comment has been placed in the section of code in the model container where the error occurs at line 6133 in querymachine.c.

Previous measures to diagnose were to use the Instruments application Atraceprogram  to see exactly where the process was locking, which lead to discovering the information on the Apple forums.

7/25/2010: Found the point of the stall during a test run to be at the ¨s  ystem $shell_command;¨c  all in neurospaces_harness.

8/30/2010: Made some changes in an attempt to remove the stalling, instead get an error at ”select$DARWIN_EXTSN” as opposed to the low level write statement ”write$NOCANCEL$UNIX2003”. Stall remains so won’t check in the changes since it did not fix the problem.

8/31/2010: Using ptkdb and running different operating systems side by side I’ve narrowed down the possible error to the perl Expect module, which seems to behave a bit differently on Mac OSX compared to CentOS and Ubuntu. For the tests which start with a command that outputs expected output with a following test case that does not write, only reads this output, the output of the prompt starting the program along with the programs output is concatenated together. This causes the test to fail, but since this read only happens on the first test specification, subsequent tests pass.

Time Estimate? day for a detailed diagnosis

Assigned to Mando

2.6 Simulator Performance Benchmarking

Performance Benchmarking is traditionally classified in phases of model-construction time and simulation run-time. Test the performance of the Purkinje cell in each of the following environments:

Time Estimate2 days

Assigned to Hugo

2.7 Demonstration Scripts

The following scripts have been selected for use as demonstration scripts:

Time Estimate2 days per scripting language

Assigned to Allan and Dave?

2.8 Cleanup Packages Archive

There are redundant packages and directories in and other download directories. Ideally there is only one directory for each set of deb packages, and all the deb packages are listed there as one flat list.

2.9 Release Notes

Time Estimate 2 days

Assigned to Allan and Dave

2.10 Announce GENESIS 3 alpha1

Write an announcement of the GENESIS 3 alpha1 release to the connectionist, compneuro, genesis-users email lists. Signed with Hugo Cornelis, Allan Coop, Mando Rodriguez, Dave Beeman, James Bower.

Time Estimate

Assigned to

2.11 Report Document for Testers

Construct a report document with instructions for alpha and beta testers. The instructions consist of installation instructions and a questionnaire about basic application functionality.

Questionnaire must be put on the website.

Time Estimate 3 days

Assigned to Allan and Dave?

2.12 Packaging and Distribution (for the alpha1 Release)

Packaging involves the creation of tarballs with source code to the creation of binary packages for different OSs.

For packaging and distribution of the alpha release of GENESIS 3.0, each software component must implement the following makefile targets:

Communicate with the previous debian maintainers about this. They are Sam Hocevar (Debian packages) sam+deb at and Matt Zimmerman mdz at

Time Estimate4 days

Assigned to Mando

2.13 Daily Releases and Release Labels

The installer scripts can update the release labels in the source code automatically, and check them in into the source code repositories. The checkin should be done on a branch ’dist’ to prevent contamination of the default ’0’ branch with versions that reconfigure the software with new release labels.

The checkin should be made visible from the repository server (ie. the tester should push its changes from its repository to the server repository).

Currently date based. This does not work with distributed version control. The only way to version files in a distributed environment is using the version control identifiers.

Time Estimate 3 days

Assigned to Mando & Hugo

2.14 Source code Configuration

Fix automake scripts to detect different operating systems and build makefiles accordingly:

Time Estimate2 Days

Assigned to Mando

2.15 GUI: Construct Model

Time Estimate2 - 3 weeks

Assigned to Mando

2.16 GUI: Run Simulation (2)

Time Estimate2 - 3 days

Assigned to Mando

2.17 GUI: Output

Time Estimate1 - 2 weeks

Assigned to Mando

2.18 GUI: Iterators

Add menus/functionality to the iterator menu.

Put a couple of iterator scripts of the purkinje cell comparison and the mutual information projects in a directory. The Iterators menu lists all the scripts found in this directory, clicking on one of them runs the appropriate script. The script generates SSP configuration files that can be loaded into the GUI.

Time Estimate1 week

Assigned to Mando

2.19 GUI: Other

Time Estimate1 week

Assigned to Mando

2.20 Documentation Framing

Look and feel of documentation website.

Check what options of the framing functions of tex4ht can be used.

Time Estimate3 days

Assigned to

2.21 gshell python

Document the python dependencies of the gshell.

Currently the gshell requires Inline::Python as a recommended option to be installed.

Time Estimate1 day

Assigned to

2.22 symmetric compartments (1)

Redundant with the other entry of symmetric compartments.

Implement symmetric compartments. We will have to decide how to do this: core implementation, or converting each symmetric compartment to two asymmetric compartments. This will also likely involve core design decisions, because the model-container does not distinguish between symmetric and asymmetric compartments (only the solvers do).

Time Estimate

Assigned to Hugo & Mando

3 DONE List

3.1 Packaging and Distribution (for the alpha1 Release)


An additional package must be created that has all other software components of GENESIS 3 as dependencies. An installer script must be created that builds all the OS specific archives and puts them in a common directory (neurospaces_dist_archives).

3.2 Model Container

Complete the implementation of the ndf_save command. Add tests for saving a full model, saving a library of models and saving a modularized part of a model.

Time Estimate1 week

Assigned to Hugo


3.3 SSP Optimizer

The SSP optimizer uses the perl Inline module to inline C code with perl code. The Inline module creates a directory hierarchy inside the current directory to do its work. The Inline module must be configured to do this in a standard directory, where all users share the result.

The installation of SSP must run SSP to do the compilation of the optimizer, and install it afterwards. This is to avoid race conditions between simultaneously running ssp processes.