|
4 | 4 | Turing allows the user to write statistical models in standard Julia syntax, and provides a wide range of sampling-based inference methods for solving problems across probabilistic machine learning, Bayesian statistics, and data science. |
5 | 5 | Since Turing is implemented in pure Julia code, its compiler and inference methods are amenable to hacking: new model families and inference methods can be easily added. |
6 | 6 |
|
7 | | -The Turing team is currently planning projects for GSoC 2025, and will post them here once they are ready. You are also welcome to propose your own projects. |
8 | | -If you are interested in working on Turing for GSoC 2025, please reach out to Markus Hauru (@mhauru) on Julia's [Slack](https://julialang.org/slack/) or [Discourse](https://discourse.julialang.org/). |
| 7 | +Below are the projects we have in mind for GSoC 2025. If you are interested in working on any of them, or want to propose your own Turing.jl-related GSoC project, please reach out to Markus Hauru (@mhauru) on Julia's [Slack](https://julialang.org/slack/) or [Discourse](https://discourse.julialang.org/). |
| 8 | + |
| 9 | +## Mooncake.jl Performance Optimization |
| 10 | + |
| 11 | +Difficulty: Medium |
| 12 | + |
| 13 | +Duration: 350 hours |
| 14 | + |
| 15 | +Description: [Mooncake.jl](https://github.com/compintell/Mooncake.jl/) is a reverse-mode AD package written entirely in Julia, which addresses many of limitations of the popular [ReverseDiff.jl](https://github.com/JuliaDiff/ReverseDiff.jl) and [Zygote.jl](https://github.com/FluxML/Zygote.jl) libraries. |
| 16 | +While the library is typically fast, performance is not tested as systematically as it could be, meaning that there are probably a range of performance bugs waiting to be uncovered. |
| 17 | +Additionally, there are a range of known performance limitations which need to be addressed. |
| 18 | +This project aims to resolve known performance problems, to find new ones, and fix them too! |
| 19 | + |
| 20 | +Skills: familiarity with Julia programming, how to make Julia code performant, and a strong desire to make existing Julia code more performant! An understanding of AD is helpful, but not essential. |
| 21 | + |
| 22 | +## R and Python Interfaces for JuliaBUGS |
| 23 | + |
| 24 | +Difficulty: Medium |
| 25 | + |
| 26 | +Duration: 175 hours or 350 hours |
| 27 | + |
| 28 | +[JuliaBUGS](https://github.com/TuringLang/JuliaBUGS.jl) is a Julia implementation of the [BUGS](https://en.wikipedia.org/wiki/WinBUGS) probabilistic programming language. It emphasizes interoperability and modularity. JuliaBUGS gives users familiar with BUGS access to Hamiltonian Monte Carlo (HMC), Automatic Differentiation (AD), and Julia’s powerful scientific computing tools. This Google Summer of Code (GSoC) project aims to create easy-to-use R and Python interfaces for JuliaBUGS. |
| 29 | + |
| 30 | +Project Tasks: |
| 31 | +* *Interface Design*: Develop R and Python packages similar to existing and widely used R packages like R2OpenBUGS and rjags, making it easy for users to adopt. |
| 32 | +* *Interoperability Development*: Use Julia's existing packages ([JuliaCall](https://github.com/JuliaInterop/JuliaCall) and [PythonCall](https://github.com/JuliaPy/PythonCall.jl)) to create the interfaces. This will allow smooth data transfer and function calls between Julia, R, and Python. |
| 33 | +* *Integration with Tools (Large Project)*: Integrate these new interfaces seamlessly with popular Bayesian visualization and diagnostics tools—such as bayesplot, posterior, and coda in R, and ArviZ in Python. |
| 34 | +* *Documentation and Tutorials (Large Project)*: Create clear and practical documentation, including tutorials, to support users in understanding and effectively using the interfaces. |
| 35 | + |
| 36 | +Participants will gain hands-on experience in Bayesian statistics, software engineering, computational methods, and developing software that works across multiple programming languages. This will prepare them well for future academic and professional opportunities. |
| 37 | + |
| 38 | +## Jaxprs in Julia |
| 39 | + |
| 40 | +Difficulty: Hard |
| 41 | + |
| 42 | +Duration: TBD |
| 43 | + |
| 44 | +The Turing.jl team is looking for a student to implement a lightweight Julia library to work with [Jaxprs](https://docs.jax.dev/en/latest/jaxpr.html). If this could be you, get in touch and we can discuss the details. |
0 commit comments