| Literature DB >> 27610080 |
Robert Meyer1, Klaus Obermayer2.
Abstract
pypet (Python parameter exploration toolkit) is a new multi-platform Python toolkit for managing numerical simulations. Sampling the space of model parameters is a key aspect of simulations and numerical experiments. pypet is designed to allow easy and arbitrary sampling of trajectories through a parameter space beyond simple grid searches. pypet collects and stores both simulation parameters and results in a single HDF5 file. This collective storage allows fast and convenient loading of data for further analyses. pypet provides various additional features such as multiprocessing and parallelization of simulations, dynamic loading of data, integration of git version control, and supervision of experiments via the electronic lab notebook Sumatra. pypet supports a rich set of data formats, including native Python types, Numpy and Scipy data, Pandas DataFrames, and BRIAN(2) quantities. Besides these formats, users can easily extend the toolkit to allow customized data types. pypet is a flexible tool suited for both short Python scripts and large scale projects. pypet's various features, especially the tight link between parameters and results, promote reproducible research in computational neuroscience and simulation-based disciplines.Entities:
Keywords: grid computing; parallelization; parameter exploration; python; reproducibility; simulation
Year: 2016 PMID: 27610080 PMCID: PMC4996826 DOI: 10.3389/fninf.2016.00038
Source DB: PubMed Journal: Front Neuroinform ISSN: 1662-5196 Impact factor: 4.081
Figure 1Conceptualization of a simulation or numerical experiment.
Figure 2Main components of . Elements in light gray mark objects that operate in the background with no direct user interaction.
Transition function .
| Current state | 111 | 110 | 101 | 100 | 011 | 010 | 001 | 000 |
| Next state | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 |
The rule is named after the decimal conversion of the binary representation: 110 = 2.
Figure 3Left: Cellular automata simulation showing six different rules. Right: BRIAN2 network simulations for three different synaptic weights w. Spiking raster plots on the left and the voltage traces of the 0th neuron on the right.
Figure 4Three use case examples combining .
Figure 5Runtime, resulting HDF5 file size, and loading time of three simple . All experiments involve only creating random numbers (via NumPy's () function) and storing the data to disk collectively at the end or individually in each run. In red a single run returns a random number that is stored together with all results after the execution of all single runs. In green a single run involves storing a single random floating point number (datasize 64 bit per number) in each run. In blue a large array of 1000 by 125 random numbers (datasize 1 megabyte per array) is written to disk in every run. On the right two different methods of pypet's data loading are depicted for each experiment. The solid lines mark loading all data at once into memory. Note that in case of the 1000 by 125 arrays data could only be loaded at once for up to 3000 runs because of limited RAM. The dashed lines mark loading data via the functionality iteratively. After loading data of a single run, it is immediately removed again to free RAM. Experiments were performed with a single core of 2.5 GHz on a conventional notebook (Lenovo ThinkPad T420) with 8 GB RAM, Samsung SSD 840 PRO, and Ubunutu 14.04 Linux operating system.