GSoC 2021 project idea 7.2: Benchmark and Optimize TVB areas

TVB has become a complex tool, with some generic areas and few very specific critical parts. Due to these, some parts are slow now. The team has identified some area with great potential to improve:

  1. Simulation wizard
  2. H5 files writing
  3. loading for visualizers from files

Starting from these critical parts (identifying others from the student tests would be much appreciated), writing or executing a flow, profiling the code usage and proposing improvements would be the goal of this project. We expect the student to start by accommodating with TVB documentation, understanding the main workflows, creating a work development setup, then use benchmark and profiling tools for identifying the critically slow areas in the code, as well as propose optimization solutions.

Expected results: A set of well described slow scenarios for benchmarking, profiling files with highlighted critical code areas, suggestions to improve (vectorize code, rewrite, use buffers, etc).

Skills: Python, Numpy, Numba, profiling tools

Mentors: Lia Domide @liadomide, Paula Popa @Popa_Paula

Tags: TVB, Python, NumPy, Numba