Julia Applied
Julia is an excellent choice for applications that require scientific and numerical computation. It is currently being used for a wide variety of scientific and industry applications. Examples include biology, energy systems, fluid dynamics, and transportation systems. The annual JuliaCon conference brings together the Julia user community and provides a fantastic overview of the variety of applications using Julia and new developments within the language. You can see all conference's talks, workshops, and keynotes (amongst other excellent material) at the Julia Language's YouTube Channel
An exciting initiative that relies heavily on Julia is the Climate Modeling Alliance (CliMA). CliMA is:
a coalition of scientists, engineers, and applied mathematicians from Caltech, MIT, the Naval Postgraduate School, and NASA’s Jet Propulsion Laboratory. We are building a new Earth system model that leverages recent advances in the computational and data sciences to learn directly from a wealth of Earth observations from space and the ground. Our model will harness more data than ever before, providing a new level of accuracy to predictions of droughts, heatwaves, and rainfall extremes.
This involves three primary considerations:
- Climate Machine: CliMA targets the first Earth system model that automatically learns from diverse data sources. The model will exploit advances in machine learning and data assimilation to learn from observations and from data generated on-demand in targeted high-resolution simulations, for example, of clouds or ocean turbulence. This aims to reduce and quantify uncertainties in climate predictions.
- Scalable Platform: a modeling platform that is scalable and built for growth. For processing data and for simulating the Earth system, it will exploit state-of-the-art algorithms to run on the world’s fastest supercomputers and on the cloud.
- Open Hub: a modeling platform that is open source, and results are available to the public. It aims to provide interfaces to the modeling platform so that it can become the anchor of an ecosystem of front-end apps. These apps may provide detailed models, for example, of flood risks, risks of extreme heat, crop yields, and other climate impacts.
These threefold objectives have onerous requirements in terms of ease-of-use and collaborative development, scalability across different platforms, and readability and extensibility by others. This makes Julia an appealing choice and worth the sacrifice of "starting from scratch" as opposed to building on existing climate tools in Fortran or the like.
The different components developed include ocean modelling systems, land information models, earth system models, and interfaces to climate models written in Julia.
In our work, we rely heavily on Julia to load data from different sources, conduct various transformations and imputation routines, combine concatenate and join with different data sources, and interrogate with various statistical and machine learning approaches. In this course, we want to introduce you to Julia and move from a beginner to somebody proficient in the language who can develop various transformations and analyses on different (real-world) aquaculture datasets. We will start with an easy introduction to the Julia language and work through core Julia packages and tools that we use as part of our. We will cover many different topics from elementary computing, to data loading and dataframe manipulation, to visualisation and code optimisation. In later sections, we will explore machine learning model development using Julia (including optional sessions on Deep Learning!). Finally, we will demonstrate using data from the GIFAS research farm in Norway