NumFOCUS is proud to introduce our Google Summer of Code (GSoC) 2019 students to the community. 

NumFOCUS is excited to once again participate as an umbrella organization for Google Summer of Code 2019 — our fifth time participating! This year we are proud to have 22 students working with 11 open source projects under the NumFOCUS umbrella, in addition to those students working with our sponsored projects participating in the program as an independent GSoC organization.

This is the first of 3 posts (Part 2, Part 3) featuring our GSoC students. Here, we introduce you to the students working on NumFOCUS sponsored projects Cantera, FEniCS, JuMP, and PyMC3.

GSoC with Cantera

Cantera is an open source software suite that helps users solve problems involving thermodynamics, chemical reaction rates, and fluid transport processes. The software is written to be flexible and efficient, handling these calculations in a way that lets the user shift their attention to other elements of their calculations. Because it is open source, the software can be easily extended to support the needs of any particular researcher.

Chao Xu

Chao Xu is a Chemical Engineering (Computational Modeling) student in the Masters degree program at Northeastern University. His hometown is Fushun, Liaoning, China. This is his first time participating in GSoC.

Chao Xu’s project is Cantera Input Error Correction:

Using Django To Create GUI For Input Error Visualizationa and Correction

Learn more about his progress on his GSoC student blog.

What motivated you to apply for GSoC with Cantera?
The project I am working on is highly related to my research.

Why did you choose your specific project topic?
Because this topic can solve a very common problem when people using Cantera. This project can help users find out the errors in python input files which is a problem I get all the time.

How did you get involved in open source software?
Yes, this is my first time contributing to open source. Our lab develops open source softwares in modeling, which gives me a good opportunity to get exposure to open source software. I have been using open source software for a while in the past.

What are you expecting or hoping to get out of your GSoC experience?
I hope I can get some experience with web development with Django and Python. To have some experience on both frontend and backend development in django, and improving computational skills in chemistry. Also, I am expecting to get some experience with open source software development.

What are your career goals? How do you see the GSoC program moving you towards them?
I am working toward to being a computational chemist, and this project can help me improve fundamental skills required for a computational chemist, including an opportunity to contribute to chemical open source software.

GSoC with FEniCS

FEniCS is an automated finite element library used to solve equations used in modeling, featuring a domain-specific language and automated code generation. Users input a problem that looks very much like mathematical notation; FEniCS then translates that into computer code. It solves problems for which there is no analytical (exact) solution numerically.

Abhinav Gupta

Abhinav Gupta is a Computational Mechanics student in the graduate program at Indian Institute of Technology Roorkee. His hometown is Himachal Pradesh, India. This is his first time participating in GSoC.

Abhinav’s project is GMsh/XDMF/DOLFIN mesh processing pipeline:

In this project, we will work to ensure that gmsh, DOLFIN, and our preferred visualization package, Paraview work seamlessly together. This will be a huge usability improvement for users working with very complex geometries.

Learn more about his progress on his GSoC student blog.

What motivated you to apply for GSoC with FEniCS?
My primary areas of interest are the finite element method (FEM) and isogeometric analysis (IGA). I have worked with many different FEM software packages (such as ABAQUS, STAAD, SAP, SAFE, etc) in the past. For my Ph.D. work, I had decided to work with some open-source package as that would help me better understand the method and how do we actually go from differential equations to numerical implementation. Initially, I started with some small open source codes written by individuals to understand different parts of FEM.

Then, I came across FEniCS, and really liked the simplicity of the way in which we could code a variational form. Also, it had a fairly vast set of documentation and tutorials available that helped me get started. I was hooked to the package and started implementing some simple FEM problems with.

I came to know about GSoC through the official website of FEniCS where they had announced that they will be participating in Google Summer of Code 2019 under the umbrella of NumFOCUS. I was really excited about this opportunity as this would help me to better understand the working of this software and moreover give me an opportunity to work with its creators.

Why did you choose your specific project topic?
FEniCS is a popular open-source computing platform for solving partial differential equations (PDEs) using finite element methods (FEM). Iso-geometric (IGA) analysis is a logical extension of FEM that utilizes spline based basis functions instead of conventional Lagrange basis functions used in FEM. To use IGA in place of FEM for solving PDEs certain changes are required to be made in the code architecture. I would like to extend the capabilities of FEniCS to IGA in the future, which requires a deeper understanding of the working of this software, especially how it handles the mesh structure. Moreover, I was really interested in understanding the XDMF file structure as it has now gained widespread acceptance in the field of HPC.

How did you get involved in open source software?
This is my first time contributing to open source software.

What are you expecting or hoping to get out of your GSoC experience?
FEniCS is a great software and I believe that it would have an even greater impact on the research community in the coming future. Through GSoC, I had been given an opportunity to work with its developer community. During the program, I hope to make significant and worthwhile contributions to the package and learn about open source development. This would also be my first time working with a team of developers and the experience that I would get from it would help me to work on more open source packages, and hopefully, one day start one of my own.

GSoC with PyMC3

PyMC3 is a Python-based statistical modeling tool for Bayesian statistical modeling and Probabilistic Machine Learning which focuses on advanced Markov chain Monte Carlo and variational fitting algorithms.

Demetri Pananos

Demetri Pananos is a Biostatistics student in the graduate program at Western University. His hometown is London, Ontario, Canada. This is his first time participating in GSoC.

Demetri’s project is Ordinary Differential Equations:

This project seeks to implement methods for computing gradients for use in PyMC3’s MCMC capabilities, thereby allowing applied researchers to analyze their systems in the Bayesian framework through PyMC3.

Learn more about his progress on his GSoC student blog.

What motivated you to apply for GSoC with PyMC3?
I wanted to develop my software development skills and become better aquatinted with how PyMC3 works under the hood.

Why did you choose your specific project topic?
I wanted to contribute this functionality for a long time. My bachelors and masters made heavy use of ODEs, and my PhD does as well to a lesser extent. The project is a good combination of my present and past interests, and so I decided it would be the best project to apply to.

How did you get involved in open source software?
I participated in the 2018 pandas doc sprint.

What are you expecting or hoping to get out of your GSoC experience?
I’m hoping that at the end of GSoC, I’ll be much more capable of contributing to open source as well as capable in writing my own software for widespread use by other scientists.

What are your career goals? How do you see the GSoC program moving you towards them?
I think data science sounds pretty cool. Productionalizing models is more software development than it is science, and that is presently where I have the least experience. I’m hoping GSoC can help me in that respect.

“Follow me on twitter @PhDemetri for stats jokes and the rare nugget of statistical insight!”

Joseph Willard

Joseph Willard is a Statistics student in the graduate program at Oakland University. His hometown is Rochester, Michigan, USA. This is his first time participating in GSoC.

Joseph’s project is Symbolic PyMC and PyMC4 Integration:

This project is aimed at accomplishing the following tasks: (1) Setup conversion of pymc4 models to symbolic-pymc meta objects. (2) Improve symbolic-pymc codebase. (3) Setup Gibbs Sampling.

Learn more about his progress on his GSoC student blog.

What motivated you to apply for GSoC with PyMC3?
To have the opportunity to work with large open source projects that are related to what I use on a daily basis.

Why did you choose your specific project topic?
To me my topic represents an opportunity to contribute something new to the project, but also has the chance to branch out into new directions.

How did you get involved in open source software?
This will be my first time contributing to open source, but I’ve been using open source software for years.

What are you expecting or hoping to get out of your GSoC experience?
The opportunity to learn more about python and PyMC as a whole while making meaningful contributions and meeting new people.

What are your career goals? How do you see the GSoC program moving you towards them?
Career wise I want to move into industry and be a contributor and voice for open source software. GSoC plays a vital part in my goals by giving me the opportunity to focus on contributing and continue learning about the open source community as a whole.

Juan Martín Loyola

Juan Martín Loyola is a Computer Science student in the graduate program at Universidad Nacional de San Luis. His hometown is San Luis, Argentina. This is his first time participating in GSoC.

Juan’s project is Bayesian Additive Regression Trees in PyMC3:

Bayesian Additive Regression Trees will allow PyMC3 users to perform regressions with a “canned” non-parametric model. By simple calling a method, users will obtain the mean regressor plus the uncertainty estimation in a fully Bayesian way. This can be used later to predict on hold-out data. Furthermore, the implemented BART model will allow experience users to specify their own priors for the specific problem they are tackling, improving performance substantially.

Learn more about his progress on his GSoC student blog.

What motivated you to apply for GSoC with PyMC3?
I always wanted to collaborate with an open source project but never got started. Last year I took a course that introduce me to bayesian analysis given by a professor that is a PyMC3’s developer. He help me get started with collaborating with the project and advice me to join GSoC this year.

Why did you choose your specific project topic?
I will like to work in this project to strengthen my knowledge of Bayesian analysis and the probabilistic approach to Machine Learning by implementing a particular model.

How did you get involved in open source software?
I’m used to using open source software, but this will be my first time contributing seriously to an open source project.

What are you expecting or hoping to get out of your GSoC experience?
I expect to improve my programming capabilities, learn all about participating in an open source project and get involved in the open source community.

What are your career goals? How do you see the GSoC program moving you towards them?
I am really interested in working in the field of Machine Learning. GSoC will help me be part of a community of very smart people from whom I can learn a lot.

GSoC with JuMP

JuMP is a modeling interface and a collection of supporting packages for mathematical optimization that is embedded in Julia. With JuMP, users formulate various classes of optimization problems with easy-to-read code, and then solve these problems using state-of-the-art open-source and commercial solvers. JuMP also makes advanced optimization techniques easily accessible from a high-level language.

Guilherme Bodin

Guilherme Bodin is an Electrical Engineering student in the Masters degree program at PUC-Rio. His hometown is Rio de Janeiro, Brazil. This is his first time participating in GSoC.

Guilherme’s project is JuMP Automatic Dualization:

We will implement a MathOptInterface feature that allows JuMP to take an optimization problem in its primal form and return the dual form in terms of Lagrangian duality. The primary project goal is that this feature should work with linear optimization problems and conic optimization problems that can be written in pure JuMP (JuMP extensions will be a bonus).

Learn more about his progress on his GSoC student blog.

What motivated you to apply for GSoC with JuMP?
I was very motivated because JuMP is an everyday tool for me and my peers at PUC-Rio. The automatic dualization feature will help a lot of future research projects

Why did you choose your specific project topic?
I was very excited about the project because I saw some colleagues spent hours writing dual problems, In the beginning, I didn’t even know what they would be used for, now I’m diving more into the theme, and each day I realize a different application that could get some help from an automatic dualization tool.

How did you get involved in open source software?
I was working a lot with Julia in a consulting project I was participating. As it is a relatively new language and Julia 1.0 was released recently, I spent some time checking GitHub repositories and reading the Julia Discourse posts. At this point, I realized that contributing to packages was not that complicated, and then I started seeing the label good first issue on the issue tracker of JuMP. I was immediately excited to contribute.

What are you expecting or hoping to get out of your GSoC experience?
I expect to learn a lot about open source project management and also about optimization. Also, it is an excellent opportunity to get closer to the JuMP community. It is a group of outstanding people.

Arpit Bhatia

Arpit Bhatia is a Computer Science and Applied Mathematics student in the Bachelors degree program at IIIT-Delhi. His hometown is New Delhi, India. This is his first time participating in GSoC.

Arpit’s project is Ecosystem Improvements and a JuMPTutorials.jl Package:

This project aims to improve the current JuMP ecosystem through the development of a JuMPTutorials.jl package, automating testing for new and old examples, updating old JuMP v0.18 code to v0.19, and standardizing naming and structuring of examples to enforce style guidelines.

Learn more about his progress on his GSoC student blog.

What motivated you to apply for GSoC with JuMP?
My degree is in Computer Science and Applied Maths, and I wanted to work on something which involved both. I wish to use the extra math I have been learning to my advantage.

Why did you choose your specific project topic?
I have always been interested in what helps us learn better and finding the perfect resource for studying a topic. I had a lot of fun being a teaching assistant too, and thus, I chose the topic which was also related to learning.

How did you get involved in open source software?
This is my first time contributing to open source. I started by trying to work on issues tagged ‘good first issue’ on the Julia GitHub repo. After finalising the project, JuMP’s first steps guide was a great help.

What are you expecting or hoping to get out of your GSoC experience?
The experience of working with an open source organisation, better coding skills and the satisfaction of helping others learn.

What are your career goals? How do you see the GSoC program moving you towards them?
I am not a 100% sure right now, but I see GSoC as something which will help me get more clarity on what I want to work on.

Gilles Peiffer

Gilles Peiffer is a computer science and applied maths student in the Bachelors degree program at Université catholique de Louvain. His hometown is Jodoigne, Walloon Brabant, Belgium. This is his first time participating in GSoC.

Gilles’ project is MutableArithmetics.jl: Bringing optimized operations to Julia:

The proposed project will involve creating a new package: MutableArithmetics.jl. This package will allow

  • for mutable types to implement mutable arithmetics;
  • for algorithms that could exploit mutable arithmetics to exploit them while still being completely generic.

On top of this, benchmarks will be written to demonstrate the improvement in runtime.

Learn more about his progress on his GSoC student blog.

What motivated you to apply for GSoC with JuMP?
One of the mentors for my project is a PhD student at my university. I kept seeing him contribute to the project on GitHub and this piqued my interest!

Why did you choose your specific project topic?
I chose this topic because it combines my areas of interest, i.e. computer science and maths.

How did you get involved in open source software?
Through following people on GitHub, and trying to help out where I know the answer to questions.

What are you expecting or hoping to get out of your GSoC experience?
I hope to both provide performance improvements for the people who use my code and learn more about the open source movement.

What are your career goals? How do you see the GSoC program moving you towards them?
I would love to work in a domain close to the ones that Julia helps out with (machine learning, artificial intelligence, …).
Writing good quality, production-ready code is important in these fields, and I hope GSoC will help me with that!

NumFOCUS Sponsored Projects

 

pandas logo
Jupyter
Matplotlib
SciPy logo
Julia logo
Astropy logo
Econ-ARK logo
Shogun logo
SymPy
Cantera logo
xarray
Blosc
MathJax logo
Dask logo
mlpack logo

 

 

pandas logo
Jupyter
Matplotlib
SciPy logo
Julia logo
Econ-ARK logo
Astropy logo
Shogun logo
SymPy
Cantera logo
xarray
Blosc
MathJax logo
Dask logo
mlpack logo

 

 

 

 

pandas logo
Jupyter
Matplotlib
SciPy logo
Julia logo
Bokeh logo
Astropy logo
Econ-ARK logo
Shogun logo
SymPy
Cantera logo
xarray
Blosc
MathJax logo
mlpack logo