Name : Mohd Jeeshan Sheikh
Organization : NumFOCUS
Mentors : Chris Rackauckas, Kanav gupta, Yingbo Ma
Project : Discretizations of Partial Differential Equations
Greetings to everyone! Finally my journey through various walks of GSoC'21, starting from preps to application, acceptance and ultimately gettings things done in sync with my proposal has came to end. Big thanks to my mentors, especially Chris Rackauckas for deciding to commit with me on this project, engaging in insightful discussions and providing his inputs at several pivotal instances.In retrospect, I came in with little idea about the SciML org and will be walking out with a really comprehensive knowledge about DiffEqOperators.jl, one of the many awesome and state-of-the-art packages that the organization has developed over the years which prove to be miles ahead in terms of performance in comparison to many other commercially popular tools in the domain of scientific computing.s
Summary of Things Done
My work can be summarized to lie under two categories :
- Feature enhancements
- Optimizations
I took the task to look for potentially desirable but missing components in DiffEqOperators.jl and introduced Vector Calculus Operators, which carry wide applications in scientific domain. This sub-goal included designing the structures, methods and various operations for the operators and finally working towards their optimization to match the API standards and benchmarks. During this I learnt the concepts of cache-efficiency and vectorization of loops. Having acquired this knowledge, I also benchmarked the convolutions for DerivativeOperators and generated a speed-up of over 2x for uniform grid CenteredDifference convolutions (though there were observed improvements in others as well!). Moving on, I designed multiple concretizations for AffineBC operators, synced concretizations for updated UpwindDifference and reduced the bandwidths in BandedMatrices for Derivative (and as a result GhostDerivative) Operators. In the end, the symbolic handling by MOLFiniteDifference was extended to support a general N-ordered BC in 1D space.
A more detailed account of these works can be found in the following blog posts :
- GSoC'21 : Last Mile
- GSoC'21 : Julia Con'21 and 8 Weeks done!
- GSoC'21 : Moving forward
- GSoC'21 : Approaching the First Evaluations
- Commencing GSoC'21 with NumFOCUS
Compilation of all contributions
Description | Pull Request | Status |
---|---|---|
Introduce NonLinearDiffusion function | #327 | Merged |
Docs update for NonLinearDiffusion | #332 | Merged |
Dimensional corrections for PeriodicBC | #334 | Merged |
Address type mismatch in GeneralBC | #337 | Merged |
Debug broken tests | #340 | Merged |
Operator Tutorials page | #346 | Merged |
Introduce Biased Upwind Operator | #347 | Merged |
Docs update for Biased Upwind | #368 | Merged |
Operators for Vector Calculus | #375 | Merged |
Multi-Dimensional BC Operator | #414 | Open |
Reduce allocations and fix loop orders in VCOps | #427 | Merged |
LoopVectorization in VCOps convolutions | #428 | Merged |
Vectorize loops in derivative operators convolutions | #431 | Merged |
Concretizations : BC operator enhancements, bandwidth optimization & restructuring for Derivative Operators |
#432 | Merged |
MOLFinitieDifference : support for N-ordered derivatives in BCs | #435 | Merged |
Future Prospects
I feel privileged for landing the opportunity of working with this amazing global community, learning from the basic know-hows to some really advanced level stuff going around in development. I’ll always carry this share of experience and try to incorporate it whenever and wherever possible.
During my journey I was able to get past many blocks that came along the way and the purpose seems fulfilled. But then every ending is followed by a new beginning :) There are lots of sought out features like the symbolic interface provided by ModelingToolkit.jl that are being looked up to and would hopefully provide a more versatile experience to users.
Having said that, I would love to pitch in and collaborate with other contributors from time to time, for working towards the bigger goal of providing efficient and top-notch utilities for the scientific community by SciML and The Julia Lang.