{"id":28181144,"url":"https://github.com/carpentries-incubator/efficient-computing-in-julia","last_synced_at":"2026-03-05T00:38:13.111Z","repository":{"id":233774747,"uuid":"787795779","full_name":"carpentries-incubator/efficient-computing-in-julia","owner":"carpentries-incubator","description":"A lesson on efficient computing in the Julia language","archived":false,"fork":false,"pushed_at":"2026-02-24T02:08:59.000Z","size":12921,"stargazers_count":1,"open_issues_count":20,"forks_count":2,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-02-24T08:42:28.956Z","etag":null,"topics":["carpentries-incubator","english","julia","lesson","pre-alpha"],"latest_commit_sha":null,"homepage":"https://carpentries-incubator.github.io/efficient-computing-in-julia/","language":"Julia","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/carpentries-incubator.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["carpentries"],"custom":["https://give.communityin.org/TheCarpentries"]}},"created_at":"2024-04-17T07:44:32.000Z","updated_at":"2026-01-26T11:52:37.000Z","dependencies_parsed_at":"2024-04-19T16:40:18.541Z","dependency_job_id":"b5598e50-f14d-4ebb-8fd5-c6cd76067c97","html_url":"https://github.com/carpentries-incubator/efficient-computing-in-julia","commit_stats":null,"previous_names":["esciencecenter-digital-skills/efficient-computing-in-julia","carpentries-incubator/efficient-computing-in-julia"],"tags_count":0,"template":false,"template_full_name":"carpentries/workbench-template-md","purl":"pkg:github/carpentries-incubator/efficient-computing-in-julia","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carpentries-incubator%2Fefficient-computing-in-julia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carpentries-incubator%2Fefficient-computing-in-julia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carpentries-incubator%2Fefficient-computing-in-julia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carpentries-incubator%2Fefficient-computing-in-julia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/carpentries-incubator","download_url":"https://codeload.github.com/carpentries-incubator/efficient-computing-in-julia/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carpentries-incubator%2Fefficient-computing-in-julia/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30102523,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T23:59:36.199Z","status":"ssl_error","status_checked_at":"2026-03-04T23:56:48.556Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["carpentries-incubator","english","julia","lesson","pre-alpha"],"created_at":"2025-05-16T03:12:16.570Z","updated_at":"2026-03-05T00:38:13.092Z","avatar_url":"https://github.com/carpentries-incubator.png","language":"Julia","funding_links":["https://github.com/sponsors/carpentries","https://give.communityin.org/TheCarpentries"],"categories":[],"sub_categories":[],"readme":"# Efficient computing in Julia\n\n## Synopsis\n\nThe 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.\n\nThis 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.\n\nWe 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.\n\nThe 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.\n\n## Syllabus\n\n- Basics of Julia: build a model of our solar system\n  * operations, control flow, functions\n  * `Unitful` quantities, `Dataframes` and plotting with `Makie`\n  * types and dispatch\n  * arrays and broadcasting\n- Package development: solving Cubic equations\n  * working with the REPL, and `Pkg`\n  * best practices with `BestieTemplate`\n  * testing with `Test`, documentation with `Documenter`\n- Faster code: a logistic population model\n  * `BenchmarkTools` and `ProfileView` (flame graphs)\n  * Optimisation techniques\n  * The type system in more depth\n  * Type stability\n  * Parallel programming: `Threads` and GPU programming (with Julia fractals)\n\n## Who\n\nThis 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.\n\nParticipants should bring a decent laptop (no chrome book) with the latest version of Julia installed and working (instructions will be provided after registration).\n\n## Teaching this lesson?\nDo you want to teach Efficient computing in Julia? This material is open-source and freely available.\nAre you planning on using our material in your teaching?\nWe 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.\n\nYou 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](workshops.md). This helps us show the impact of developing open-source lessons to our funders.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarpentries-incubator%2Fefficient-computing-in-julia","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcarpentries-incubator%2Fefficient-computing-in-julia","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarpentries-incubator%2Fefficient-computing-in-julia/lists"}