% IMPORTANT: The following is UTF-8 encoded. This means that in the presence
% of non-ASCII characters, it will not work with BibTeX 0.99 or older.
% Instead, you should use an up-to-date BibTeX implementation like “bibtex8” or
% “biber”.
@ARTICLE{Zaytsev:152183,
author = {Zaytsev, Yury and Morrison, Abigail},
title = {{C}y{NEST}: a maintainable {C}ython-based interface for the
{NEST} simulator},
journal = {Frontiers in neuroinformatics},
volume = {8},
issn = {1662-5196},
address = {Lausanne},
publisher = {Frontiers Research Foundation},
reportid = {FZJ-2014-01957},
pages = {23},
year = {2014},
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.},
cin = {JSC / IAS-6 / INM-6 / JARA-HPC},
ddc = {610},
cid = {I:(DE-Juel1)JSC-20090406 / I:(DE-Juel1)IAS-6-20130828 /
I:(DE-Juel1)INM-6-20090406 / $I:(DE-82)080012_20140620$},
pnm = {411 - Computational Science and Mathematical Methods
(POF2-411) / SMHB - Supercomputing and Modelling for the
Human Brain (HGF-SMHB-2013-2017) / HASB - Helmholtz Alliance
on Systems Biology (HGF-SystemsBiology) / W2Morrison - W2/W3
Professorinnen Programm der Helmholtzgemeinschaft
(B1175.01.12) / SLNS - SimLab Neuroscience (Helmholtz-SLNS)},
pid = {G:(DE-HGF)POF2-411 / G:(DE-Juel1)HGF-SMHB-2013-2017 /
G:(DE-Juel1)HGF-SystemsBiology / G:(DE-HGF)B1175.01.12 /
G:(DE-Juel1)Helmholtz-SLNS},
typ = {PUB:(DE-HGF)16},
UT = {WOS:000348106800001},
doi = {10.3389/fninf.2014.00023},
url = {https://juser.fz-juelich.de/record/152183},
}