Optimization and GPU porting of information flow implementation

Project info

Title: Optimization and GPU porting of information flow implementation

Project lead and collaborators: Etienne Combrisson & Ruggero Basanisi

Image of the project: project1

Registered Brainhack Global 2020 Event: BrainHack Marseille

Project Description: Frites is a recent pure Python package (https://github.com/brainets/frites) to analyse neurophysiological data within the Information Theoretical framework and to perform group-level statistics on information-based measures. The aim of the software is to extract brain networks that are modulated according to the task (model-based and model-free analysis). To this end, Frites contains several CPU-based functions to estimate the directed information flow between brain areas. While those methods estimate the directed connectivity in a reasonable amount of time on small networks, the complexity of larger networks are too demanding for the current CPU implementation. Therefore, the ultimate goal of this project would be to have both a CPU and a GPU implementations of our recent multivariate information flow measure.

Data to use: No data are needed, Frites includes functions to generate simulated data.

Link to project repository/sources: GitHub: https://github.com/brainets/frites

Goals for Brainhack Global 2020: The following points are going to be addressed in this project:

Good first issues: Translate the core functions to be executed on GPU devices Benchmark those functions against CPU implementations and decide whether it’s better in the future to have two implementations (CPU / GPU) or to have system-agnostic functions Skills: Good knowledge of python is needed. We will mostly use basic libraries used in computer science, especially numpy. No needing about specific knowledge of GPU programming.

Tools/Software/Methods to Use: Python, Jupyter, GitHub, and Nextjournal or Colab.

Project labels

Project Submission

Submission checklist

Once the issue is submitted, please check items in this list as you add under ‘Additional project info’

Optionally, you can also include information about:

We would like to think about how you will credit and onboard new members to your project. If you’d like to share your thoughts with future project participants, you can include information about:

Jan 1, 0001 12:00 AM