efficient-computing-in-julia
A lesson on efficient computing in the Julia language
https://github.com/carpentries-incubator/efficient-computing-in-julia
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
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.7%) to scientific vocabulary
Keywords
Repository
A lesson on efficient computing in the Julia language
Basic Info
- Host: GitHub
- Owner: carpentries-incubator
- License: other
- Language: Julia
- Default Branch: main
- Homepage: https://carpentries-incubator.github.io/efficient-computing-in-julia/
- Size: 16 MB
Statistics
- Stars: 1
- Watchers: 4
- Forks: 0
- Open Issues: 8
- Releases: 0
Topics
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: carpentries-incubator
- Login: carpentries-incubator
- Kind: organization
- Repositories: 107
- Profile: https://github.com/carpentries-incubator
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
- Issues event: 7
- Delete event: 6
- Issue comment event: 8
- Member event: 3
- Push event: 47
- Pull request review event: 1
- Pull request event: 5
- Create event: 5
Last Year
- Issues event: 7
- Delete event: 6
- Issue comment event: 8
- Member event: 3
- Push event: 47
- Pull request review event: 1
- Pull request event: 5
- Create event: 5
Committers
Last synced: 9 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Johan Hidding | j****g@e****l | 57 |
| raar1 | r****n@g****m | 10 |
| Ewan Cahen | e****n@e****l | 5 |
| Sven van der Burg | s****g@e****l | 2 |
| Abel Soares Siqueira | a****a@e****l | 2 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 11
- Total pull requests: 14
- Average time to close issues: 30 days
- Average time to close pull requests: 1 day
- Total issue authors: 3
- Total pull request authors: 4
- Average comments per issue: 1.82
- Average comments per pull request: 1.21
- Merged pull requests: 12
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 8
- Pull requests: 13
- Average time to close issues: about 1 month
- Average time to close pull requests: 1 day
- Issue authors: 3
- Pull request authors: 3
- Average comments per issue: 2.25
- Average comments per pull request: 1.23
- Merged pull requests: 11
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- jhidding (6)
- f-hafner (3)
- svenvanderburg (1)
Pull Request Authors
- ewan-escience (6)
- raar1 (5)
- carpentries-bot (2)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/upload-artifact v3 composite
- actions/checkout v3 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 v3 composite
- actions/upload-artifact v3 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 v3 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 v3 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 v3 composite
- carpentries/actions/check-valid-credentials main composite
- carpentries/actions/update-workflows main composite
- carpentries/create-pull-request main composite