Title: Optimization and GPU porting of information flow implementation
Project lead and collaborators: Etienne Combrisson & Ruggero Basanisi
Image of the project:
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
Type of project: coding_methods, data_management, documentation, #method_development, pipeline_development, tutorial_recording, visualization
Project development status: 0_concept_no_content, 1_basic structure, #2_releases_existing
Topic of the projet: Bayesian_approaches, #causality, connectome, data_visualisation, deep_learning, diffusion, diversity_inclusivity_equality, EEG_EventRelatedResponseModelling, EEG_source_modelling, Granger_causality, hypothesis_testing, ICA, #information_theory, machine_learning, MR_methodologies, neural_decoding, neural_encoding, neural_networks, PCA, #physiology, reinforcement_learning, reproducible_scientific_methods, single_neuron_models, statistical_modelling, systems_neuroscience, tractography, #connectivity
Tools used in the project: AFNI, ANTs, BIDS, Brainstorm, CPAC, Datalad, DIPY, FieldTrip, fMRIPrep, Freesurfer, FSL, #Jupyter, #MNE, MRtrix, Nipype, NWB, SPM
Tools skill level required to enter the project (more than one possible): comfortable, #expert, #familiar, no_skills_required
Programming language used in the project: no_programming_involved, C++, containerization, documentation, Java, Julia, Matlab, #Python, R, shell_scripting, Unix_command_line, Web, workflows
Modalities involved in the project (if any): behavioral, DWI, ECG, ECOG, EEG, eye_tracking, fMRI, fNIRS, MEG, MRI, PET, TDCS, TMS
Git skills reuired to enter the project (more than one possible): 0_no_git_skills, #1_commit_push, #2_branches_PRs, 3_continuous_integration
I added all of the labels I want an associate to my project
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: