Mentors: Benjamin Evans <B.D.Evans@sussex.ac.uk>, Dan Goodman @d.goodman <d.goodman@imperial.ac.uk>, Marcel Stimberg @mstimberg <marcel.stimberg@inserm.fr>
Skill level: Novice/intermediate
Required skills: Python, C++
Time commitment: Part-time (175 hours)
Forum for discussion
About: Brian is a clock-driven spiking neural network simulator that is easy to learn, highly flexible, and simple to extend. Written in Python, it allows users to describe and run arbitrary neural and synaptic models without needing to write code in any other programming language. It is built on a code-generation framework that transforms model descriptions into efficient low-level code.
Currently, the Brian simulator lacks advanced support for complex simulation pipelines that require storing or restoring the state of simulations (e.g., checkpointing) or saving a complete network architecture to a file. Such pipelines are particularly important for studies involving machine learning-like workflows, such as running a network on multiple stimuli for training and testing. In recent years, the Brian simulator has introduced several features to support these approaches, but they come with limitations and do not cover the full range of potential use cases.
Aims: The aim of this project is to improve and consolidate the Brian simulator’s tools for model and state (de)serialization. Specifically, the goals of this project are to:
- Extend the current store/restore mechanism to work with Brian’s C++ standalone mode and Brian2CUDA.
- Refactor the basicexporter from the brian2tools package so that it can be used to serialize a network architecture.
- Create a corresponding basicimporter to reconstruct a network from such a serialization.
Project website: GitHub - brian-team/brian2tools: Tools to use with Brian 2, in particular for visualization and GitHub - brian-team/brian2: Brian is a free, open source simulator for spiking neural networks.
Tech keywords: Python, C++, serialization
Hello @d.goodman , @mstimberg , Benjamin Evans
I hope you’re doing well. My name is Aniruddha Roy, and I’m a machine learning enthusiast with hands-on experience in Python, C++, machine learning and deep learning algorithms. I have worked on multiple projects using these technologies; however, I have not yet had the opportunity to apply serialization in a practical setting, despite having a solid understanding of its workings.
I am eager to contribute to this project, as it presents a great opportunity to strengthen my knowledge of the required technologies. I believe the best way to learn is through implementation, and I would love to gain hands-on experience by actively participating. I have explored the GitHub repository, but I’m unsure how to get started and would really appreciate your guidance.
Any advice or resources to help me better understand and engage with the project would be highly valuable. I look forward to your insights!
Thank you for your time.
Aniruddha Roy
Hi @Aniruddha_Roy, Thank you for the interest in our project! I am currently travelling and can not get into details at this time, but I will be back in the office coming Monday and will give you more information then. Until then, you can find some very general information on the website we put up for last year’s GSoC: GSoC 2024 | The Brian spiking neural network simulator The 2024 discussions on neurostars (links in the page linked above) should also give you some ideas. Apologies for not being more precise for now, but I’ll get back to you early next week.
Best,
Marcel
Hi @mstimberg ,
Thank you for your response! I really appreciate your reply, especially while traveling. I’ll definitely go through the resources you mentioned and explore them in the meantime. Looking forward to hearing from you next week!
Also wishing you a smooth and enjoyable trip!
Thank you,
Aniruddha
Dear Brian Team,
I am an MPhil student at the University of Cambridge studying computational neurosciece where I am supervised by Prof Petra Vertes (Cambridge) and Dr Danyal Akarca (Imperial). I have a strong interest in computer science with experience in both Python and C++ derived from academic and personal projects. Given that I am working with spiking neural networks for my thesis, I am acutely aware of (and experienced with) the difficulties of replicating spiking neural networks, so I am very excited to work on a project like Brian which helps to tackle this problem.
I thought I would reach out to show my interest before the application period opens and am eagerly awaiting further details!
Kind regards,
Robert
Hi,
Fellow contributors, Myself Sparsh (Gsoc 2024 contributor for INCF)
If anyone of you need help for setting up of Brian in your local. I would be happy to help and any doubt regarding the basic exporter package, you can directly message me on Neurostars.
Certainly I am not as good as @mstimberg but can help you to clear your blockers if any in the mean time.
1 Like
Hello @mstimberg @d.goodman ,@BenjaminEvans
I am Mahi S. Palimkar, a Computer Engineering sophomore at Veermata Jijabai Technological Institute (VJTI), Mumbai, India. I am a Machine learning enthusiast with experience in Deep learning, Natural language processing, computer vision, and web development. I have a good command on Python, C/C++, and version control using Git/GitHub.
I found the project idea “Brian Simulator: Serialization and Deserialization for Brian simulator models” very intriguing and also equally important because effective serialization is critical for
- Creating checkpointing systems for long-running simulations
- Supporting machine learning workflows with training and testing phases
- Enabling researchers to share exact model configurations
I am currently trying to set Brian up locally and also going through papers provided on the org website.
I would love to solve issues and do tasks for this project if there are any. It would be great if you guide me on what to do further!
I am also attaching my resume here.
Thank you and have a great trip @mstimberg !
Regards
Mahi