For my Master's thesis, I will be working with Sophie Deneve, looking at the balance between excitation and inhibition in spiking neural networks, and the oscillatory effects of delayed inhibitory responses, with a view to understanding how these properties affect the statistics of the neural code, and whether it is possible to explain oscillatory effects observed in cortex and behaviour with respect to attention and schizophrenia.

Under the supervision of Bernhard Mehlig, I computed the finite-size corrections for an asymptotic theory of the statistics of confined polymers in the extended de Gennes regime using high-performance Monte Carlo simulations implementing the pruned-enriched Rosenbluth method.

I performed an experimental analysis of microscopy videos of RecA-coated DNA confined in the Odijk regime and thereby elucidated the nucleation time for the formation of hairpin bends.

Software

PyViennaCL

During the Google Summers of Code2013 and 2014, under the aegis of the Institute for Analysis and Scientific Computing at TU Wien, I proposed, designed and developed PyViennaCL, the Python-language bindings for the open source ViennaCL library for high-performance GPGPU linear algebra and scientific computing, which is written in OpenCL, CUDA and C++. This involved designing a language-agnostic abstract representation for algebraic expressions, which is then passed to a kernel generator and scheduler, thereby enabling scientific code written in Python seamlessly to produce very high performance on a variety of computing architectures, from single-core machines to large heterogeneous systems. I also wrote substantial documentation and a test suite to guarantee correctness.

ROOT and cppyy

During the Google Summer of Code2015, I worked with the "software for experiments" group at CERN on cppyy. cppyy uses the new cling C++ interpreter (built on top of clang and LLVM) in order to provide JIT-compiled runtime access to arbitrary C++ code from Python. My work aims to simplify the API, and provide new features for the manual tuning of the generated Python interface. Ultimately, this project will greatly improve the writing of high-performance scientific code in Python, by eliminating the cumbersome work of writing bindings for C++ code, and thereby allowing developers to drop easily into C++ for performance-sensitive routines.