efficient-computing-in-julia-2
Replacement for the Efficient Computing in Julia lesson
https://github.com/esciencecenter-digital-skills/efficient-computing-in-julia-2
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.5%) to scientific vocabulary
Repository
Replacement for the Efficient Computing in Julia lesson
Basic Info
- Host: GitHub
- Owner: esciencecenter-digital-skills
- License: other
- Language: Julia
- Default Branch: main
- Homepage: https://esciencecenter-digital-skills.github.io/efficient-computing-in-julia-2/
- Size: 8.46 MB
Statistics
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Efficient computing in Julia
Synopsis
The Julia programming language is getting more and more popular as a language for data analysis, modelling and optimization problems. It promises the ease of Python or R with a run-time efficiency closer to C or Fortran. Julia also is a more modern language with a packaging ecosystem that makes packages easier to install and maintain. A programmer that is familiar with Python, R or Matlab should have little problem getting up to speed with the basics of Julia. However, to really obtain the promised near native run-time efficiency is a different skill altogether.
This workshop aims to get research software engineers (experienced in another programming language) from their first steps in Julia to become aware of all the major techniques and pitfalls when it comes to writing performant Julia.
We will work hands-on with real-world examples to explore concepts in the Julia language, focussing on differences with other languages. After the first day, you will be familiar with the basic constructs of the language, some popular libraries, and its package manager, including unit testing and documentation.
The second day we will dive deeper in making Julia code fast to run. We'll see how to benchmark and profile code, and find out what is fast and slow. This means getting to grips with Julia's type system and its compilation strategy. We will close the day with parallel programming and using the GPU to make our code even faster.
Syllabus
- Basics of Julia: build a model of our solar system
- operations, control flow, functions
Unitfulquantities,Dataframesand plotting withMakie- types and dispatch
- arrays and broadcasting
- Package development: solving Cubic equations
- working with the REPL, and
Pkg - best practices with
BestieTemplate - testing with
Test, documentation withDocumenter
- working with the REPL, and
- Faster code: a logistic population model
BenchmarkToolsandProfileView(flame graphs)- Optimisation techniques
- The type system in more depth
- Type stability
- Parallel programming:
Threadsand GPU programming (with Julia fractals)
Who
This workshop is aimed at scientists and research engineers who are already familiar with another language like Python, Matlab or R. The basics of Julia will be introduced, but it is essential that participants are familiar with programming concepts and are comfortable working with a programming editor and command-line interfaces.
Participants should bring a decent laptop (no chrome book) with the latest version of Julia installed and working (instructions will be provided after registration).
Teaching this lesson?
Do you want to teach Efficient computing in Julia? This material is open-source and freely available. Are you planning on using our material in your teaching? We would love to help you prepare to teach the lesson and receive feedback on how it could be further improved, based on your experience in the workshop.
You can notify us that you plan to teach this lesson by creating an issue in this repository. Also, it would be great if you can update this overview of all workshops taught with this lesson material. This helps us show the impact of developing open-source lessons to our funders.
Owner
- Name: eScience Center Digital Skills Programme
- Login: esciencecenter-digital-skills
- Kind: organization
- Email: training@esciencecenter.nl
- Website: https://esciencecenter-digital-skills.github.io/
- Repositories: 87
- Profile: https://github.com/esciencecenter-digital-skills
Citation (CITATION.cff)
# This template CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to replace its contents
# with information about your lesson.
# Remember to update this file periodically,
# ensuring that the author list and other fields remain accurate.
cff-version: 1.2.0
title: FIXME
message: >-
Please cite this lesson using the information in this file
when you refer to it in publications, and/or if you
re-use, adapt, or expand on the content in your own
training material.
type: dataset
authors:
- given-names: FIXME
family-names: FIXME
abstract: >-
FIXME Replace this with a short abstract describing the
lesson, e.g. its target audience and main intended
learning objectives.
license: CC-BY-4.0
GitHub Events
Total
- Member event: 1
- Push event: 45
- Create event: 4
Last Year
- Member event: 1
- Push event: 45
- Create event: 4
Dependencies
- actions/upload-artifact v4 composite
- actions/checkout v4 composite
- carpentries/actions/check-valid-pr main composite
- carpentries/actions/comment-diff main composite
- carpentries/actions/download-workflow-artifact main composite
- carpentries/actions/download-workflow-artifact main composite
- carpentries/actions/remove-branch main composite
- carpentries/actions/check-valid-pr main composite
- carpentries/actions/comment-diff main composite
- actions/checkout v4 composite
- actions/upload-artifact v4 composite
- carpentries/actions/check-valid-pr main composite
- carpentries/actions/setup-lesson-deps main composite
- carpentries/actions/setup-sandpaper main composite
- r-lib/actions/setup-pandoc v2 composite
- r-lib/actions/setup-r v2 composite
- actions/checkout v4 composite
- carpentries/actions/setup-lesson-deps main composite
- carpentries/actions/setup-sandpaper main composite
- r-lib/actions/setup-pandoc v2 composite
- r-lib/actions/setup-r v2 composite
- actions/checkout v4 composite
- carpentries/actions/check-valid-credentials main composite
- carpentries/actions/update-lockfile main composite
- carpentries/create-pull-request main composite
- r-lib/actions/setup-r v2 composite
- actions/checkout v4 composite
- carpentries/actions/check-valid-credentials main composite
- carpentries/actions/update-workflows main composite
- carpentries/create-pull-request main composite
- ubuntu latest build
- anyio 4.8.0
- appnope 0.1.4
- argon2-cffi 23.1.0
- argon2-cffi-bindings 21.2.0
- arrow 1.3.0
- asttokens 3.0.0
- async-lru 2.0.4
- attrs 24.3.0
- babel 2.16.0
- beautifulsoup4 4.12.3
- bleach 6.2.0
- certifi 2024.12.14
- cffi 1.17.1
- charset-normalizer 3.4.1
- colorama 0.4.6
- comm 0.2.2
- debugpy 1.8.11
- decorator 5.1.1
- defusedxml 0.7.1
- executing 2.1.0
- fastjsonschema 2.21.1
- fqdn 1.4.0
- h11 0.14.0
- httpcore 1.0.7
- httpx 0.28.1
- idna 3.10
- ipykernel 6.29.5
- ipython 8.31.0
- isoduration 20.11.0
- jedi 0.19.2
- jinja2 3.1.5
- json5 0.10.0
- jsonpointer 3.0.0
- jsonschema 4.23.0
- jsonschema-specifications 2024.10.1
- jupyter-client 8.6.3
- jupyter-core 5.7.2
- jupyter-events 0.11.0
- jupyter-lsp 2.2.5
- jupyter-server 2.15.0
- jupyter-server-terminals 0.5.3
- jupyterlab 4.3.4
- jupyterlab-pygments 0.3.0
- jupyterlab-server 2.27.3
- markupsafe 3.0.2
- matplotlib-inline 0.1.7
- mistune 3.1.0
- nbclient 0.10.2
- nbconvert 7.16.5
- nbformat 5.10.4
- nest-asyncio 1.6.0
- notebook-shim 0.2.4
- overrides 7.7.0
- packaging 24.2
- pandocfilters 1.5.1
- parso 0.8.4
- pexpect 4.9.0
- platformdirs 4.3.6
- prometheus-client 0.21.1
- prompt-toolkit 3.0.48
- psutil 6.1.1
- ptyprocess 0.7.0
- pure-eval 0.2.3
- pycparser 2.22
- pygments 2.19.1
- python-dateutil 2.9.0.post0
- python-json-logger 3.2.1
- pywin32 308
- pywinpty 2.0.14
- pyyaml 6.0.2
- pyzmq 26.2.0
- referencing 0.35.1
- requests 2.32.3
- rfc3339-validator 0.1.4
- rfc3986-validator 0.1.1
- rpds-py 0.22.3
- send2trash 1.8.3
- setuptools 75.8.0
- six 1.17.0
- sniffio 1.3.1
- soupsieve 2.6
- stack-data 0.6.3
- terminado 0.18.1
- tinycss2 1.4.0
- tornado 6.4.2
- traitlets 5.14.3
- types-python-dateutil 2.9.0.20241206
- uri-template 1.3.0
- urllib3 2.3.0
- wcwidth 0.2.13
- webcolors 24.11.1
- webencodings 0.5.1
- websocket-client 1.8.0
- jupyterlab (>=4.3.4,<5.0.0)