Summary and outlook
Questions
What have we learned so far?
What libraries are available for scientific computing in Julia?
Where should I go from here?
Instructor note
10 min teaching
Where to go from here
Additional learning resources can be found at https://julialang.org/learning/.
If you want to dig deeper into topics touched upon in this material, please visit:
The various links under See also sections in the lesson episodes.
https://juliagpu.org/ for everything about Julia GPU programming.
https://github.com/JuliaParallel for parallelization packages.
https://github.com/JuliaInterop for interoperability between Julia and not-Julia
The Julia discourse platform is a place to search for existing questions and answers and to ask new questions. Core developers and experienced Julia programmers are generous with advice and friendly to newcomers.
There is also an active Slack workspace/community with over 10,000 members. This is a space to have quick and informal correspondence with others in the community.
Interesting blog posts about Julia are posted on the Julia Forem.
Julia Computing organises regular free webinars and sends out a regular newsletter with the latest news on Julia.
JuliaCon is organized annually in July and participation is free.
SciMLCon was organized for the first time in 2022 and is focused on the development and applications of the Julia-based SciML (scientific machine learning) tooling. Participation is free.
Ecosystem of scientific computing packages
Julia has a rich and rapidly expanding ecosystem of packages for scientific computing in many scientific domains. In many cases developers of individual packages join forces to create mutually compatible and supporting packages organized under a common GitHub organization. The following list can be of some help in navigating the ecosystem.
Mathematics
JuliaDiff – Differentiation tools
JuliaGeometry – Computational Geometry
JuliaGraphs – Graph Theory and Implementation
JuliaIntervals - Rigorous numerics with interval arithmetic & applications
JuliaMath – Mathematics made easy in Julia
JuliaOpt – Optimization
JuliaPolyhedra – Polyhedral computation
JuliaSparse – Sparse matrix solvers
JuMP-dev - Modeling language for mathematical optimization
Scientific domains
BioJulia – Biology
EcoJulia – Ecology
JuliaAstro – Astronomy
JuliaDSP – Digital signal processing
JuliaQuant – Finance
JuliaQuantum – Julia libraries for quantum science and technology
QuantumBFS – Extensible, Efficient Quantum Algorithm Design for Humans
JuliaPhysics – Physics
JuliaDynamics - Dynamical systems, nonlinear dynamics and chaos.
Data sciences
SciML – Scientific machine learning
FluxML - Machine learning stack
JuliaML – Machine Learning
JuliaStats – Statistics
JuliaImages – Image Processing
JuliaText – Natural Language Processing (NLP), Computational Linguistics and (textual) Information Retrieval
JuliaDatabases – Various database drivers for Julia
JuliaData – Data manipulation, storage, and I/O in Julia
Scientific computing libraries
Which, if any, libraries and packages do you currently use for scientific computing?
Do you see something interesting in the list above?
Summary
Make a concept map
Concept maps, like the one above, can be useful to organise one’s knowledge and help with planning projects.
Draw a concept map of a project for which you want to use Julia. It can either focus on the scientific/engineering aspects or on the software side, or both. You can use pen and paper or online tools such as Excalidraw.