Journal Article FZJ-2014-01957

http://join2-wiki.gsi.de/foswiki/pub/Main/Artwork/join2_logo100x88.png
CyNEST: a maintainable Cython-based interface for the NEST simulator

 ;

2014
Frontiers Research Foundation Lausanne

Frontiers in neuroinformatics 8, 23 () [10.3389/fninf.2014.00023] special issue: "Python in Neuroscience II"

This record in other databases:  

Please use a persistent id in citations:     doi:

Abstract: NEST is a simulator for large-scale networks of spiking point neuron models (Gewaltig and Diesmann, 2007). Originally, simulations were controlled via the Simulation Language Interpreter (SLI), a built-in scripting facility implementing a language derived from PostScript (Adobe Systems, Inc., 1999). The introduction of PyNEST (Eppler et al., 2008), the Python interface for NEST, enabled users to control simulations using Python. As the majority of NEST users found PyNEST easier to use and to combine with other applications, it immediately displaced SLI as the default NEST interface. However, developing and maintaining PyNEST has become increasingly difficult over time. This is partly because adding new features requires writing low-level C++ code intermixed with calls to the Python/C API, which is unrewarding. Moreover, the Python/C API evolves with each new version of Python, which results in a proliferation of version-dependent code branches. In this contribution we present the re-implementation of PyNEST in the Cython language, a superset of Python that additionally supports the declaration of C/C++ types for variables and class attributes, and provides a convenient foreign function interface (FFI) for invoking C/C++ routines (Behnel et al., 2011). Code generation via Cython allows the production of smaller and more maintainable bindings, including increased compatibility with all supported Python releases without additional burden for NEST developers. Furthermore, this novel approach opens up the possibility to support alternative implementations of the Python language at no cost given a functional Cython back-end for the corresponding implementation, and also enables cross-compilation of Python bindings for embedded systems and supercomputers alike.

Classification:

Contributing Institute(s):
  1. Jülich Supercomputing Center (JSC)
  2. Theoretical Neuroscience (IAS-6)
  3. Computational and Systems Neuroscience (INM-6)
  4. JARA - HPC (JARA-HPC)
Research Program(s):
  1. 411 - Computational Science and Mathematical Methods (POF2-411) (POF2-411)
  2. SMHB - Supercomputing and Modelling for the Human Brain (HGF-SMHB-2013-2017) (HGF-SMHB-2013-2017)
  3. HASB - Helmholtz Alliance on Systems Biology (HGF-SystemsBiology) (HGF-SystemsBiology)
  4. W2Morrison - W2/W3 Professorinnen Programm der Helmholtzgemeinschaft (B1175.01.12) (B1175.01.12)
  5. SLNS - SimLab Neuroscience (Helmholtz-SLNS) (Helmholtz-SLNS)

Appears in the scientific report 2014
Database coverage:
Medline ; Creative Commons Attribution CC BY 3.0 ; DOAJ ; OpenAccess ; SCOPUS
Click to display QR Code for this record

The record appears in these collections:
Dokumenttypen > Aufsätze > Zeitschriftenaufsätze
JARA > JARA > JARA-JARA\-HPC
Institutssammlungen > IAS > IAS-6
Institutssammlungen > INM > INM-6
Workflowsammlungen > Öffentliche Einträge
Workflowsammlungen > Publikationsgebühren
Institutssammlungen > JSC
Publikationsdatenbank
Open Access

 Datensatz erzeugt am 2014-04-08, letzte Änderung am 2024-03-13