From 35297158370347fc6686a829363c6c90b7ce59fc Mon Sep 17 00:00:00 2001 From: carstenbauer Date: Wed, 26 Jun 2024 19:43:28 +0000 Subject: [PATCH] fetch juliacon schedule --- juliacon2024_schedule/schedule.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/juliacon2024_schedule/schedule.json b/juliacon2024_schedule/schedule.json index 8bad2f9..42afb54 100644 --- a/juliacon2024_schedule/schedule.json +++ b/juliacon2024_schedule/schedule.json @@ -1 +1 @@ -{"$schema": "https://c3voc.de/schedule/schema.json", "generator": {"name": "pretalx", "version": "2024.2.0.dev0"}, "schedule": {"url": "https://pretalx.com/juliacon2024/schedule/", "version": "0.3", "base_url": "https://pretalx.com", "conference": {"acronym": "juliacon2024", "title": "Juliacon 2024", "start": "2024-07-09", "end": "2024-07-12", "daysCount": 4, "timeslot_duration": "00:05", "time_zone_name": "Europe/Amsterdam", "colors": {"primary": "#3aa57c"}, "rooms": [{"name": "REPL (2, main stage)", "guid": "5c6ee87c-db8a-5bb4-a19f-c5cdf33da22a", "description": "2nd floor, keynotes", "capacity": 1000}, {"name": "If (1.1)", "guid": "e430f2f2-8d07-5f24-97d4-9f303ac45cce", "description": "1st Floor", "capacity": 140}, {"name": "Else (1.3)", "guid": "4bf3eb99-fea3-5d57-a632-0b5d9a5a54c2", "description": "1st Floor", "capacity": 120}, {"name": "Struct (1.4)", "guid": "6307780f-c982-5d06-a25e-7461874db936", "description": "1st Floor", "capacity": 140}, {"name": "Method (1.5)", "guid": "b0079e1b-0c12-5b12-b0b5-0dc1f3cd563e", "description": "1st Floor", "capacity": 130}, {"name": "For Loop (3.2)", "guid": "8c116ae7-f15d-5d19-ba00-c5a85442d1b8", "description": "3rd Floor", "capacity": 150}, {"name": "Function (4.1)", "guid": "43a8b52a-e689-5901-ac76-e45345b9bfce", "description": "4th Floor", "capacity": 50}, {"name": "While Loop (4.2)", "guid": "892ce152-be7e-5cad-974c-13ba80dc75d2", "description": "4th Floor", "capacity": 140}, {"name": "Reflection (1.2)", "guid": "e8c67f96-db48-51c6-9d56-2c117ed5b8d9", "description": "1st Floor", "capacity": 50}, {"name": "Thread (1.6)", "guid": "be574072-ec69-5c28-beb2-4d17607c88fb", "description": "1st Floor", "capacity": null}, {"name": "TU-Eindhoven 1.350", "guid": "19f608aa-ae11-5310-bd0d-d57e6f70791c", "description": null, "capacity": 75}, {"name": "TU-Eindhoven 1.354", "guid": "c5fa3408-b414-5a79-a5b6-6f2dda561ff8", "description": null, "capacity": 75}, {"name": "TU-Eindhoven 0.242", "guid": "1da745e7-278a-5376-b440-3709289185ef", "description": null, "capacity": 50}, {"name": "TU-Eindhoven 0.244", "guid": "74c48aa3-7821-5237-8706-07ce1603019a", "description": null, "capacity": 50}, {"name": "TU-Eindhoven 0.246", "guid": "c5f54d33-5590-509e-afbf-773ea243dd6f", "description": null, "capacity": 50}, {"name": "TU-Eindhoven 0.264", "guid": "cc0ba8e9-8574-581c-afb7-0fcee52b5cc7", "description": null, "capacity": 50}, {"name": "TU-Eindhoven 0.266", "guid": "cb07c76c-dfea-57a1-bce4-0486b5a474aa", "description": null, "capacity": 50}], "tracks": [{"name": "General", "color": "#000000"}, {"name": "Earth and climate science in Julia: Power to the user", "color": "#764806"}, {"name": "Quantum Minisymposia", "color": "#790BFB"}, {"name": "Aerospace Minisymposium", "color": "#49F0F3"}, {"name": "Industrial Julia", "color": "#676565"}, {"name": "Scientific Data Minisymposium", "color": "#01390F"}, {"name": "Julia for High-Performance Computing", "color": "#FB0202"}, {"name": "AI/ML/AD", "color": "#F30FCA"}, {"name": "SciML", "color": "#006051"}, {"name": "Notebooks & Graphics", "color": "#760303"}, {"name": "Posters", "color": "#06F701"}, {"name": "Community", "color": "#C99BE6"}, {"name": "Julia Internals and Tooling", "color": "#01A6FF"}, {"name": "Biology & Life Sciences", "color": "#027F20"}, {"name": "Physics & Quantum Chemistry", "color": "#002489"}, {"name": "Economics", "color": "#B69804"}, {"name": "Data Science and Dynamics", "color": "#F17800"}, {"name": "Math(s)", "color": "#E89999"}, {"name": "Optimization", "color": "#FBFF42"}, {"name": "Graphs", "color": "#378A9D"}, {"name": "Accelerated & large-scale computing", "color": "#B63E09"}, {"name": "PyData", "color": "#009DFF"}], "days": [{"index": 1, "date": "2024-07-09", "day_start": "2024-07-09T04:00:00+02:00", "day_end": "2024-07-10T03:59:00+02:00", "rooms": {"TU-Eindhoven 0.242": [{"url": "https://pretalx.com/juliacon2024/talk/EFCQMK/", "id": 44390, "guid": "a4416896-807f-574c-8fb4-ec0fab68244b", "date": "2024-07-09T09:00:00+02:00", "start": "09:00", "logo": null, "duration": "03:00", "room": "TU-Eindhoven 0.242", "slug": "juliacon2024-44390-julia-for-systems-biology-generating-personalized-models", "title": "Julia for Systems Biology; generating personalized models", "subtitle": "", "track": "Biology & Life Sciences", "type": "Workshop", "language": "en", "abstract": "Computational models are a valuable tool to study dynamic interactions and the evolution of systems behavior. Our hands-on and interactive workshop will demonstrate how personalized models can be more rapidly generated in Julia using various SciML packages combined with custom implementations. We will cover the implementation of ODE models in Julia, parameter estimation and model selection strategies including parameter sensitivity and identifiability analysis.", "description": "Computational models offer a valuable tool for understanding the dynamic interactions between different biological entities, especially in biomedical applications. Personalizing these models with data can shed light on interindividual variation and project future health risks. However, model generation can be computationally expensive. Our hands-on and interactive workshop will demonstrate how personalized models can be more rapidly generated in Julia. We will be mainly using DifferentialEquations.jl combined with Optimization.jl and custom implementations of sensitivity and identifiability analysis approaches. Useing an in-house model of the glucose-insulin system, we will cover the implementation and resolving of ODE systems in Julia, including importing in SBML. We will provide a guide on model selection including parameter sensitivity and identifiability analysis, highlighting efficiencies that can be achieved using Julia. Additionally, we will discuss strategies for parameter estimation, including the benefits of regularization, using a publicly available data set of meal responses. Short presentation will be used to provide necessary background and theory and all methods will be implemented in a Jupyter notebook to facilitate independent learning.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "10bb9753-6cc7-5b82-8389-cb40f186c037", "id": 39961, "code": "KEF3QM", "public_name": "Shauna O'Donovan", "avatar": null, "biography": "Assistant Professor in Modelling and AI for precision nutrition; Department of Biomedical Engineering; Eindhoven University of Technology.", "answers": []}, {"guid": "886537b3-6b49-580e-b36a-d35b487c5553", "id": 38755, "code": "JEHZJY", "public_name": "Max de Rooij", "avatar": "https://pretalx.com/media/avatars/IMG_0154_MgJgCrw.jpeg", "biography": "I\u2019m a PhD candidate in systems biology for metabolic disease at the Department of Biomedical Engineering at Eindhoven University of Technology. I am working on model personalisation with scientific machine learning.", "answers": []}, {"guid": "6f17c1dc-504b-53af-8a57-83a8aeb85248", "id": 42832, "code": "CEXMTA", "public_name": "Natal van Riel", "avatar": "https://pretalx.com/media/avatars/2abaa040497eead9e156be314fb6dfbb_u4U6gmJ.jpg", "biography": "Natal van Riel is Professor of Biomedical Systems Biology at the department of Biomedical Engineering at Eindhoven University of Technology, where he leads the Computational Biology group and the Systems Biology and Metabolic Diseases research program. He is also part-time Professor of Computational Modelling at Amsterdam University Medical Centers (location AMC, University of Amsterdam's Faculty of Medicine). His research focuses on modelling of metabolic networks and physiology, machine learning for parameter estimation, methods for analysis of dynamic models, and applications in Metabolic Syndrome and associated diseases such as Type 2 Diabetes.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/GFCSRB/", "id": 39590, "guid": "18f260c2-75ee-54e6-9f47-910514a6d4db", "date": "2024-07-09T13:30:00+02:00", "start": "13:30", "logo": null, "duration": "03:00", "room": "TU-Eindhoven 0.242", "slug": "juliacon2024-39590-writing-and-maintaining-an-exceptional-documentation", "title": "Writing and maintaining an exceptional Documentation", "subtitle": "", "track": "General", "type": "Workshop", "language": "en", "abstract": "Wanna learn how to write a stellar documentation, that will satisfy newcomers, make them quickly and efficiently learn your software, and even motivate them to become contributors? Then join this workshop all about one of the most important aspects of software development: _documentation!_ You will learn the core principles of good docs, tips & tricks, and you will write good docs yourself, during the workshop! Plus you'll learn to create docs and host them online using Documenter.jl!", "description": "_**Note: you should bring the codebase you want to document with you in this workshop! The exercises are applied to your own codebase!**_\r\n\r\nThis workshop is all about documentation. It's one of the most important aspects of code and software: it makes your code accessible to others, makes their experience with it pleasant, makes them wanna keep using it for the long run, and lowers the threshold for them to become contributors! Whether you are a maintainer of several registered Julia packages, or a just someone with an unregistered codebase that you believe can be useful for others, this workshop will be of use to you!\r\n\r\nThe workshop will be fully hands-on, and will be composed by several iterations of [lecture -> application] for the covered topics. The main things it will cover are (among others, and depending on the real-time flow):\r\n\r\n1. Core principles of what makes a good documentation.\r\n1. The skeleton of a good documentation: exceptional, unambiguous docstrings.\r\n1. The different depths of exposition approach to documentation.\r\n1. The introductory tutorial.\r\n1. Layouting documentation pages.\r\n1. Tips & tricks for increasing clarity in the docs.\r\n1. Intro to Documenter.jl: key syntax and functions.\r\n1. Using Documenter.jl to generate runnable examples.\r\n1. Using Documenter.jl to deploy documentation online on a GitHub repository.\r\n1. Using DocumenterCitations.jl to cite literature robustly.\r\n1. Tips for reducing maintainance burden.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "04b88dcf-6708-52c9-a8dc-2b14f0cc6ac9", "id": 3002, "code": "GB8WTV", "public_name": "George Datseris", "avatar": "https://pretalx.com/media/avatars/datseris_profile_meldon_i1RKRbx.jpg", "biography": "I am an applied physicist/mathematician with a broad interest in nonlinear dynamics and complex systems and their application to understand the physical world at a conceptual level. My main focus in my research is understanding the interaction of clouds, climate variability, and climate multistability. Besides research, I am the lead developer of the JuliaDynamics software organization, an advocate of open source code and good scientific code practices in academia, and passionate about teaching applied physics/mathematics with a fresh, hands-on computational style", "answers": []}, {"guid": "548e1cb5-b013-59eb-855e-ac2f6eda981b", "id": 1030, "code": "PMKEJN", "public_name": "Morten Piibeleht", "avatar": "https://pretalx.com/media/avatars/56dd0464231b9e36ee010756eb0dcd25_DsWFRDo.jpg", "biography": "Morten is a physicist & software engineer from Estonia, but based in Auckland, New Zealand. He's one of the maintainers Documenter.jl and the JuliaDocs package ecosystem, and works as a software engineer at JuliaHub.\r\n\r\nGitHub: [@mortenpi](/~https://github.com/mortenpi)", "answers": []}, {"guid": "e73678c4-ccbc-594f-9a5c-27cfffd0bf4a", "id": 1115, "code": "FTWNWJ", "public_name": "Fredrik Ekre", "avatar": null, "biography": "Software Engineer at JuliaHub.", "answers": []}], "links": [], "attachments": [], "answers": []}], "TU-Eindhoven 0.244": [{"url": "https://pretalx.com/juliacon2024/talk/D3Y7KW/", "id": 43438, "guid": "359c7fe2-1b9a-5c5d-a022-b21d8c485ce2", "date": "2024-07-09T09:00:00+02:00", "start": "09:00", "logo": "https://pretalx.com/media/juliacon2024/submissions/D3Y7KW/Final-medium_JjEvDmJ.jpg", "duration": "03:00", "room": "TU-Eindhoven 0.244", "slug": "juliacon2024-43438-productive-parallel-programming-with-dagger-jl", "title": "Productive Parallel Programming with Dagger.jl", "subtitle": "", "track": "Accelerated & large-scale computing", "type": "Workshop", "language": "en", "abstract": "Everybody wants fast code, but not everyone knows how to write it. Thankfully, Dagger.jl can help you write fast, parallel code with such ease as you've never known before. In this workshop, we will teach you everything you need to know to use Dagger effectively, and work through building example parallel programs with Dagger.", "description": "Traditional parallel programming can be very hard to do effectively, as there are many prerequisites to know, and many tools that need to be used correctly and combined for maximum performance. Because of this, many programmers never learn how to write code that can scale beyond a single thread or a single server; and when parallelism is added to code, it often only supports one or a limited number of systems and hardware devices, which excludes users with unsupported systems from using that code effectively.\r\n\r\nDagger.jl aims to help fix this problem for Julia code, by providing a full parallel programming environment that closely matches how users already write code. Instead of forcing users to learn a new programming paradigm or opinionated API, Dagger provides a variety of familiar interfaces - like tasks, arrays, tables, and graphs - so that users can pick the interface that matches their existing code and algorithms. And once any of those interfaces are used, Dagger seamlessly parallelizes the user's code and allows it to run automatically on multiple CPUs, multiple servers, on a variety of GPUs, and more, and even manages data by moving it to disk when available memory is tight.\r\n\r\nThis workshop is focused on users who feel comfortable with Julia, but struggle with adding parallelism to their code. This workshop will start out by introducing Dagger and explaining how it works at a high level. Then, we will dive into the various programming interfaces (tasks, arrays, tables, graphs, and more) that Dagger provides, show how they can be used just like their non-Dagger counterparts, and then work through an example program built with each programming paradigm. Along the way, we will also see how to user Dagger's logging and profiling capabilities to gain insights into what Dagger is doing behind the scenes, so that we can better observe where our parallelism is coming from.\r\n\r\nIf there is enough time, we will also cover more advanced topics like how to utilize GPUs, MPI interfacing, and more.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "28b9fa43-872b-548f-9f5b-a6f9173f1ca2", "id": 4385, "code": "GRFD9D", "public_name": "Julian P Samaroo", "avatar": "https://pretalx.com/media/avatars/profile_headshot_CMMByGU.jpg", "biography": "I'm a Research Software Engineer at MIT's JuliaLab, working on parallel programming with Dagger.jl and AMDGPU.jl. I love working on low-level runtimes and compilers, as well as building out high-level, user-friendly parallel programming interfaces.", "answers": []}, {"guid": "bbf53041-544b-5d87-9b34-c01f53854d57", "id": 1089, "code": "HNA89P", "public_name": "Przemys\u0142aw Szufel", "avatar": "https://pretalx.com/media/avatars/przemyslaw_szufel_kadrowane600x750_zE0iQfb.jpg", "biography": "Przemys\u0142aw Szufel is an Assistant Professor at SGH Warsaw School of Economics, Adjunct Professor at Toronto Metropolitan University. His main research focus is applying advanced analytics methods, and in particular, machine learning, simulation and optimization in modelling in bringing new value to business processes. He is a co-author of several tools and algorithms for optimal and cost efficient collection and analysis of large data sets in the cloud. He is a co-author of over 40 publications, including handbooks and journal papers, in the area of applying advanced analytics, machine learning and simulation methods to making optimal business decisions. He is an active member of the Julia language community - maintains 4 official Julia packages and has 2nd place answering Julia-related questions on StackOverflow. He is a co-author of book \u201cJulia 1.0 Programming Cookbook: Over 100 numerical and distributed computing recipes for your daily data science workflow\u201d. Przemys\u0142aw is also co-managing SilverDecisions.pl project (that aims for representing and supporting business decisions), which has been elected by the European Commission to the Innovation Radar programe, grouping the best innovations financed by the EU funds.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/NTQZJJ/", "id": 43634, "guid": "f897f29c-1e65-5981-980e-6c6fdd0a8d76", "date": "2024-07-09T13:30:00+02:00", "start": "13:30", "logo": "https://pretalx.com/media/juliacon2024/submissions/NTQZJJ/Julia_for_HPC_-_workshop_vdgRdKX.png", "duration": "03:00", "room": "TU-Eindhoven 0.244", "slug": "juliacon2024-43634-hands-on-with-julia-for-hpc-on-gpus-and-cpus", "title": "Hands-on with Julia for HPC on GPUs and CPUs", "subtitle": "", "track": "Accelerated & large-scale computing", "type": "Workshop", "language": "en", "abstract": "Julia offers the flexibility of a high-productivity language while providing control, performance, and compatibility with high-performance computing (HPC) hardware. This workshop demonstrates how Julia makes modern HPC accessible. It covers resource configuration, distributed computing, code optimization for CPUs and GPUs, and versatile workflows. Participants will have the opportunity to experience it firsthand with a hands-on session on a GPU-powered supercomputer.", "description": "Why to wait hours for computations to complete, when it could take only a few seconds? Tired of prototyping code in an interactive, high-level language and rewriting it in a lower-level language to get high-performance code? By its design, Julia offers the flexibility of a high-productivity language, without sacrificing the control, the performance, and the idiosyncrasies that are often demanded by high-performance computing (HPC) hardware.\r\n\r\nThis workshop demonstrates how modern HPC is made accessible to a broad range of users using Julia. We will cover technical backgrounds and hands-on examples in contemporary uses of HPC systems: resource configuration and management; distributed computing; optimising code of CPUs and GPUs; sophisticated workflows that can run (almost) anywhere! If you\u2019re using HPC systems right now, or if you\u2019re just curious about HPC, this workshop is right for you.\r\n\r\n**Program**\r\nThe workshop consists of 2 parts:\r\n\r\n1. You will learn the basics of how to develop applications and workflows for HPC systems. Topics covered in the first part are:\r\n - Managing your software environment on HPC systems\r\n - Multithreading\r\n - Distributed computing (structured and unstructured communication using [MPI.jl](/~https://github.com/JuliaParallel/MPI.jl), [Distributed.jl](/~https://github.com/JuliaLang/Distributed.jl), and [Dagger.jl](/~https://github.com/JuliaParallel/Dagger.jl)).\r\n - Developing code for GPUs.\r\nEach of the topics above will be presented in the form of technical background, and accessible hands-on examples. Since performance is key, we will also cover the relevant performance optimization tools for each area.\r\n\r\n2. Once you\u2019re armed with the necessary knowledge, we will spend the second part developing an HPC application on a supercomputer: [NERSC\u2019s Perlmutter system](https://www.nersc.gov/systems/perlmutter/). The application you will implement will be driven entirely from NERSC\u2019s Jupyter Hub, and it will make use of multiple nodes and GPUs. Packages you will learn about/use: [MPI.jl](/~https://github.com/JuliaParallel/MPI.jl), [Dagger.jl](/~https://github.com/JuliaParallel/Dagger.jl), [HDF5.jl](/~https://github.com/JuliaIO/HDF5.jl), [IJulia.jl](/~https://github.com/JuliaLang/IJulia.jl).\r\n\r\nWe will provide access to training accounts on NERSC\u2019s \u201cPerlmutter\u201d system. Please apply to get our training account no later than a week before the workshop. **Details will be posted here: https://juliaparallel.org/tutorials/.**\r\n\r\n**Goals**\r\nBy the end of this workshop, you will have acquired or refreshed the basics of how to develop applications and workflows for HPC systems using Julia. In the first part, you will learn about basic tools using simple examples. Then, in a second part, you will develop a parallelized version of a serial code and run it on NERSC\u2019s GPU-accelerated supercomputer Perlmutter.\r\n\r\nWe look forward to having you on board and will make sure to foster exchange of ideas and knowledge to provide an as inclusive as possible event.\r\n\r\n**Prerequisite Knowledge**\r\nThis workshop assumes a basic knowledge of the Julia language (language structure such as functions and modules, control flow, and data types including arrays), and coding best practices (such as git, ssh, and limited usage of the Bash command line interface).\r\n\r\nWe will cover the fundamentals of multi-threading, distributed, and GPU computing; as well as how these relate to modern HPC systems. Now prerequisite knowledge in these areas is needed.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "848e7813-344c-5834-aeeb-a0d80906a475", "id": 4202, "code": "ZTATFJ", "public_name": "Ludovic R\u00e4ss", "avatar": "https://pretalx.com/media/avatars/Pict_LR_jwV2Krw.jpg", "biography": "Geo-HPC, Julia GPU & Supercomputing.", "answers": []}, {"guid": "a02fe659-3ee9-5382-8575-becb7b9d955c", "id": 4153, "code": "R3SWQF", "public_name": "Carsten Bauer", "avatar": "https://pretalx.com/media/avatars/stanford2_moreblurred_cut_github_E1Kahzs.jpg", "biography": "Carsten is a postdoctoral theoretical physicist from Cologne, Germany, and a Senior HPC Scientist within the German National High-Performance Computing Alliance (NHR) at the Paderborn Center for Parallel Computing (PC2).", "answers": []}, {"guid": "0c6c77c7-960f-5bcf-af1d-498a9f3b764c", "id": 26305, "code": "FRBW87", "public_name": "Ivan Utkin", "avatar": "https://pretalx.com/media/avatars/fa500983b169c53548cdb52743800b2f_7GdLy6s.jpg", "biography": null, "answers": []}, {"guid": "bc32350d-426b-5bb2-baec-ac9cc9ff3098", "id": 10503, "code": "K9PVSE", "public_name": "Johannes Blaschke", "avatar": "https://pretalx.com/media/avatars/profile_picture_jvnHESk.png", "biography": "I am an application performance specialist, engaging with scientists to help them optimize their software for large-scale high-performance computing (HPC) environments. I am passionate about helping science teams tackle the problem of deploying their existing algorithms on emergent, highly heterogeneous hardware. I lead the NERSC Science Acceleration Program (NESAP), which works with users to develop workflows for the next generation of HPC systems. \r\n\r\nMy interests include new high-productivity HPC programming models for distributed programs and hardware accelerators; developing cross-facility workflows; and applying novel simulation techniques to broad range of complex systems, as well as inverse problems.", "answers": []}], "links": [], "attachments": [], "answers": []}], "TU-Eindhoven 0.246": [{"url": "https://pretalx.com/juliacon2024/talk/YPPSBF/", "id": 43873, "guid": "1b5c65c2-7eb4-5d23-9550-f1f0377626b5", "date": "2024-07-09T09:00:00+02:00", "start": "09:00", "logo": null, "duration": "03:00", "room": "TU-Eindhoven 0.246", "slug": "juliacon2024-43873-hierarchical-component-based-modeling-with-modelingtoolkit-jl", "title": "Hierarchical Component-Based Modeling with ModelingToolkit.jl", "subtitle": "", "track": "SciML", "type": "Workshop", "language": "en", "abstract": "Acausal modeling tools such as ModelingToolkit, Modelica, and Simscape are widely used for industrial modeling, simulated real-world phenomena such as hydraulic, HVAC, and multibody systems. In this tutorial we will dive into how to easily build large-scale high-fidelity models with ModelingToolkit and use its embedding within the Julia programming language in order to transform high level descriptions into simpler equations and simulate the resulting models with the tools of Julia's SciML.", "description": "ModelingToolkit is the symbolic modeling layer of Julia's SciML. SciML covers many areas of numerical modeling and simulation, such as linear systems of equations, nonlinear systems of equations, differential equations, and optimization. Similarly, ModelingToolkit is a symbolic modeling language which covers the same interfaces and shuttles to the underlying numerical solvers.\r\n\r\nWhat makes ModelingToolkit interesting is its ability to allow for reusable component-based modeling and its ability to perform automatic simplification of the resulting equations. This allows for efficient hierarchical modeling, where libraries of components define items like engines and air compressors, and then modelers can easily build large models by connecting the existing physical components to generate composed models. The resulting composed model is then simplified to give a representation of he system that is fast to simulate, but without being slow to model.\r\n\r\nIn this workshop we will showcase how to build steady state models, transient models, and optimization models. We will showcase the ModelingToolkitStandardLibrary as a source of pre-built components that can be used to quickly get started, and we will show how ModelingToolkit interacts with the growing set of tooling around it, including graphical user interfaces (GUIs), specialized solvers, and model analysis tooling. This includes:\r\n\r\n- Moment closure expansions\r\n- File readers for importing models (SBML, CellML)\r\n- MathOptInterface special integrations for Optimization\r\n- Structural identifiability analysis\r\n- Linearization\r\n\r\nand much more.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "6ab02490-d781-5300-94af-5f4ffbefbdff", "id": 904, "code": "WUWQQ3", "public_name": "Chris Rackauckas", "avatar": "https://pretalx.com/media/avatars/ChristopherRackauckas101_Rl0yCrY.jpg", "biography": "Dr. Chris Rackauckas is the VP of Modeling and Simulation at JuliaHub, the Director of Scientific Research at Pumas-AI, Co-PI of the Julia Lab at MIT, and the lead developer of the SciML Open Source Software Organization. For his work in mechanistic machine learning, his work is credited for the 15,000x acceleration of NASA Launch Services simulations and recently demonstrated a 60x-570x acceleration over Modelica tools in HVAC simulation, earning Chris the US Air Force Artificial Intelligence Accelerator Scientific Excellence Award. See more at https://chrisrackauckas.com/. He is the lead developer of the Pumas project and has received a top presentation award at every ACoP in the last 3 years for improving methods for uncertainty quantification, automated GPU acceleration of nonlinear mixed effects modeling (NLME), and machine learning assisted construction of NLME models with DeepNLME. For these achievements, Chris received the Emerging Scientist award from ISoP.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/9KQJFS/", "id": 44391, "guid": "23a2cb37-9675-5fd9-80e2-685e1f18d06a", "date": "2024-07-09T13:30:00+02:00", "start": "13:30", "logo": "https://pretalx.com/media/juliacon2024/submissions/9KQJFS/Icon_w0WIAUe.png", "duration": "03:00", "room": "TU-Eindhoven 0.246", "slug": "juliacon2024-44391-scientific-machine-learning-using-functional-mock-up-units", "title": "Scientific Machine Learning using Functional Mock-Up Units", "subtitle": "", "track": "SciML", "type": "Workshop", "language": "en", "abstract": "If there is something YOU know about a physical system, AI shouldn\u2019t need to learn it. How to integrate your system knowledge into an ML development process is the core topic of this hands-on workshop. The entire workshop evolves around a challenging use case from robotics: Modeling a robot that is able to write arbitrary messages with a pen. After introducing the topic and the considered use case, participants can experiment with their very own robot model.", "description": "This workshop focuses on the integration of Functional Mock-Up Units (FMUs) into a machine learning topology. FMUs are simulation models that can be generated within a variety of modeling tools (https://fmi-standard.org/). Together with deep neural networks that complement and improve the FMU prediction, so called NeuralFMUs can be created. Example use cases that show the potentials of this technique are given during the introduction. \r\n\r\nThe workshop itself evolves around the modeling of a Selective Compliance Assembly Robot Arm (SCARA), that is able to write user defined words on a sheet of paper. A ready to use physical simulation model (FMU) for the SCARA is given and shortly highlighted during the workshop. However, this model \u2013 as any simulation model \u2013 shows some deviations if compared to measurements from the real system. These deviations result from unmodeled so called slip-stick-friction: The pen sticks to the paper until a force limit is reached, but then moves jerkily. A hard to model physical effect \u2013 but not for a NeuralFMU.\r\n\r\nThe workshop divides into the following slots:\r\n- [60min] Thematic introduction: Scientific Machine Learning / Hybrid Modeling / SCARA\r\n- [15min] Coffee break / Preparing notebook\r\n- [30min] Coding Together: Examination of the used model (FMU) and data\r\n- [60min] Exploring the notebook: Designing and training the hybrid model\r\n- [15min] Wrap-up, Results, Closing the workshop\r\n\r\nAfter completing the workshop, participants will be able to answer the following questions:\r\n- What is hybrid modeling and what are advantages/disadvantages compared to modeling based on physical principles or pure machine learning models?\r\n- How can the physical modeling and machine learning world be connected? What needs to be considered?\r\n- What are NeuralODEs and NeuralFMUs?\r\n- How does the choice of signals between physical model (FMU) and machine learning model influence the training success and computational performance?\r\n\r\nEquipped with the knowledge about the necessary steps to build a proper hybrid model for the SCARA, workshop participants will have an easier time dealing with their own hybrid modeling applications.\r\n\r\nParticipants only need access to a computer with Julia installed (tested under v1.10) running Windows or Linux. To ensure a productive experience for all participants, major parts of modeling and coding are pre-implemented as interactive Pluto-Notebook. This way, participants can explore the topic at their own pace according to their previous knowledge. The notebook stays available after the workshop.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "2c06c4d4-81f2-5f58-89b2-bd05039c0755", "id": 26269, "code": "PWQVZG", "public_name": "Tobias Thummerer", "avatar": "https://pretalx.com/media/avatars/tobi_web_450x300_ZNq3fIC.jpg", "biography": "GitHub: thummeto\r\nPhD Candidate @ University of Augsburg", "answers": []}, {"guid": "406a6ba0-231e-5088-adc6-dcb29ab3f638", "id": 27882, "code": "DML9DB", "public_name": "Lars Mikelsons", "avatar": "https://pretalx.com/media/avatars/Me_z2hyAsv.jpg", "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}], "TU-Eindhoven 0.264": [{"url": "https://pretalx.com/juliacon2024/talk/7NGHZP/", "id": 49355, "guid": "2bb88fe1-4b77-5ebd-967f-ccb46fc8f8fd", "date": "2024-07-09T09:00:00+02:00", "start": "09:00", "logo": null, "duration": "03:00", "room": "TU-Eindhoven 0.264", "slug": "juliacon2024-49355-introduction-to-julia", "title": "Introduction to Julia", "subtitle": "", "track": "General", "type": "Workshop", "language": "en", "abstract": "Kick-start JuliaCon 2024 with this half-day workshop to pick up the language. Discover what makes Julia special and start writing your own code right away. No prior Julia experience is necessary; this workshop is geared towards anyone with basic programming knowledge from another language.", "description": "The goal of this workshop is to provide you with a broad overview of the language and establish a foundation for the rest of the week. We will cover Julia's syntax and data structures as well as its marquee features, including multiple dispatch, its type system, and a few common packages.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "702cdbba-3d59-59e8-8c73-c2e14549c481", "id": 43826, "code": "RHZZSU", "public_name": "Matt Bauman", "avatar": null, "biography": "Dr. Matt Bauman is the Director of Sales Engineering at JuliaHub Inc. and has been working with the Julia language for over a decade. He holds a PhD in BioEngineering from the University of Pittsburgh.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/RCZT83/", "id": 44416, "guid": "f45c362b-41f1-56cc-bf99-f7db0543066e", "date": "2024-07-09T13:30:00+02:00", "start": "13:30", "logo": null, "duration": "03:00", "room": "TU-Eindhoven 0.264", "slug": "juliacon2024-44416-julia-and-rust-safer-abstractions-and-ffi-workshop", "title": "Julia and Rust - Safer abstractions and FFI Workshop", "subtitle": "", "track": "General", "type": "Workshop", "language": "en", "abstract": "Rust is great but not for Julians - unless you come to this talk and learn to go around the rougher spots we face when interacting with Rust for real world scenarios.", "description": "We'll cover stuff like:\r\n- Basic and Advanced LSP setup for the best Rust integration\r\n- Common Rust footguns that will be encountered by Julia folks\r\n- A small project to generate bindings using `cbindgen` and `diplomat`\r\n- Miss BenchmarkTools.jl? We'll cover the best of `divan` \r\n- Iterators tricks to speed up your Rust code", "recording_license": "", "do_not_record": false, "persons": [{"guid": "1f460c05-7e86-53a2-b526-fdde637cd139", "id": 1182, "code": "JE89PF", "public_name": "Miguel Raz Guzm\u00e1n Macedo", "avatar": "https://pretalx.com/media/avatars/d99ee1f43735c47968810bad35938825_c4q16DR.jpg", "biography": "Julia. Rust. Wannabe time bandit.", "answers": []}], "links": [], "attachments": [], "answers": []}]}}, {"index": 2, "date": "2024-07-10", "day_start": "2024-07-10T04:00:00+02:00", "day_end": "2024-07-11T03:59:00+02:00", "rooms": {"REPL (2, main stage)": [{"url": "https://pretalx.com/juliacon2024/talk/3EZMQM/", "id": 45603, "guid": "faacdced-d56d-5c7d-8c35-c7197ecc6b28", "date": "2024-07-10T09:00:00+02:00", "start": "09:00", "logo": null, "duration": "01:00", "room": "REPL (2, main stage)", "slug": "juliacon2024-45603-state-of-julia-2024", "title": "State of Julia 2024", "subtitle": "", "track": "General", "type": "Keynote", "language": "en", "abstract": "It is time again to take a look at what new exciting things have happened with Julia; the language, the package ecosystem and the community. Join us as we explore these advancements and celebrate the progress of Julia in 2024.", "description": "It is time again to take a look at what new exciting things have happened with Julia; the language, the package ecosystem and the community. Join us as we explore these advancements and celebrate the progress of Julia in 2024.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "53ae67fb-1a32-5b38-bde1-9fbdf24048bd", "id": 1090, "code": "AS3MKE", "public_name": "Kristoffer Carlsson", "avatar": "https://pretalx.com/media/avatars/589d4b174b72b32180fb573263a3a1a2_PVSFSog.jpg", "biography": "Software engineer for JuliaHub, worked on many open source projects including Pkg.jl, PackageCompiler.jl and Julia itself.", "answers": []}, {"guid": "68e94df8-a99a-5d38-84d8-145e7ef0b643", "id": 18161, "code": "UYMQJS", "public_name": "Lilith Hafner", "avatar": "https://pretalx.com/media/avatars/circle_ndxEx8H.jpg", "biography": "I am an artist, scientist, and developer, with a specialty in sorting. Lately I've been exploring how to improve the Julia contributor experience.", "answers": []}, {"guid": "25fed2e5-f1fc-5c69-8bc3-1fb6a30f501f", "id": 26282, "code": "LQRC77", "public_name": "Elliot Saba", "avatar": "https://pretalx.com/media/avatars/mugshot_itT8qpM.png", "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/NFEKFJ/", "id": 51434, "guid": "671e27aa-dc79-5bdc-9362-8aa64ffc74ef", "date": "2024-07-10T10:00:00+02:00", "start": "10:00", "logo": null, "duration": "00:15", "room": "REPL (2, main stage)", "slug": "juliacon2024-51434-juliet-romeo-making-julia-a-hard-real-time-robot-language", "title": "Juliet&Romeo; making Julia a hard real-time robot language", "subtitle": "", "track": null, "type": "Silver sponsor talk", "language": "en", "abstract": "Juliet is the first robot programming language that is low-latency real-time multitasking while\r\nbeing safe and fully dynamic with automatic memory management as supported by the new\r\nreal-time virtual machine Romeo. Juliet&Romeo provides a Julia-compatible platform for\r\nmachine control, with digital twins and AI features co-existing as Julia packages.", "description": "Robots are machines that are system-programmable by robot producers and system\r\nintegrators, and then user-programmable by different means for defining the task at hand.\r\nSystem programs have so far been written in unsafe languages like C++, also used for\r\nimplementing an interpreter for the user language. User languages have up to now \r\nbeen programmatically very limited and specific for each robot brand, while on the \r\nother hand supporting interactive motion programming quite well, including \r\nsimplified multi-tasking control and backwards execution as required for a \r\nrobot programming language. It is hereby announced a new more advanced take \r\non robot programming, with simplicity for non-programmers in mind:\r\n\r\nJuliet is the first robot programming language that is low-latency real-time multitasking while\r\nbeing safe and fully dynamic with automatic memory management as supported by the new\r\nreal-time virtual machine Romeo. Juliet&Romeo (1) provides a Julia-compatible platform for\r\nmachine control, with Digital Twins and AI features co-existing as Julia (2) packages.\r\n\r\n(1) Juliet&Romeo is a registered trademark of Cognibotics AB and Estun Automation Co, Ltd.\r\n(2) Julia is a registered trademark of Julia Computing Inc.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "caed5710-c66c-56b1-a2ee-b1ee998403f3", "id": 45674, "code": "YLC8NJ", "public_name": "Klas Nilsson", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/HDY8LE/", "id": 51433, "guid": "306a112d-9573-5e86-9fb8-92e541229ed4", "date": "2024-07-10T10:15:00+02:00", "start": "10:15", "logo": null, "duration": "00:25", "room": "REPL (2, main stage)", "slug": "juliacon2024-51433-juliasim-bringing-julia-to-industrial-modeling-and-simulation", "title": "JuliaSim: Bringing Julia to Industrial Modeling and Simulation", "subtitle": "", "track": null, "type": "Platinum sponsor talk", "language": "en", "abstract": "JuliaHub has been developing JuliaSim - a modern modeling and simulation tool that leverages Julia and ModelingToolkit.jl\u2019s unique capabilities. In this talk, we will show how JulaSim\u2019s capabilities are being used across industrial, automotive and aviation firms. Gary Mansouri, Chief Architect of Systems MBE at Boeing, will join us for a conversation on the process of model based design for developing safety-critical flight software.", "description": "JuliaHub has been developing JuliaSim - a modern modeling and simulation tool that leverages Julia\u2019s unique capabilities. JuliaSim aims to bridge the two cultures problem in engineering product design, combining vastly better modeling and simulation capabilities along with code deployment capabilities. JuliaSim builds upon the ModelingToolkit.jl framework by adding a GUI as well as a new compiler backend. In addition, JuliaSim also includes a set of advanced model libraries for HVAC, batteries, and Multibody (with new ones being continuously developed). In this talk, we will show how JulaSim\u2019s capabilities are being used across industrial, automotive and aviation firms.\r\nGary Mansouri, Chief Architect of Systems MBE at Boeing, will join us for a conversation on the process of model based design and digital engineering related to systems product development. Boeing is a leading global aerospace company and is committed to innovating for the future, leading with sustainability, and cultivating a culture based on the company\u2019s core values of safety, quality and integrity.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "fbc9e7a9-66ca-5c40-9d7b-2ac4dfe224b4", "id": 45421, "code": "TEXUG7", "public_name": "Viral B. Shah", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/D3H79J/", "id": 43067, "guid": "2ddf8950-73d5-537f-898c-1df6b9c47574", "date": "2024-07-10T11:00:00+02:00", "start": "11:00", "logo": null, "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-43067-adventures-in-julia-ir-plundering-core-compiler", "title": "Adventures in Julia IR: Plundering Core.Compiler", "subtitle": "", "track": "Julia Internals and Tooling", "type": "Talk", "language": "en", "abstract": "This is a tutorial on how to use the tools shipped with Julia in Core.Compiler to manipulate the Julia IR and thus change how the program is compiled.\r\nIt includes running custom code transforms (like for autodiff), custom optimization passes, and introducing custom intrinsics.\r\nThis talk is for advanced Julia users, who want to understand and (ab)use the internals.", "description": "Julia uses several intermediate representations (IR) during the compilation process.\r\nThe abstract syntax tree (AST), untyped IR, typed IR, LLVM IR.\r\nDifferent transforms happen as these different stages, and they can be extended by you.\r\nIn contrast to previous talks presented at JuliaCon, the focus of this talk is on typed-IR, rather than the untyped IR commonly manipulated with Cassette or IRTools.jl.\r\n\r\nThis talk will cover in detail how passes transform the code, showing how to implement and deploy custom passes for optimization.\r\nThis will allow you to control how your code is optimised, or even introduce new semantics beyond what is possible at the lexical/syntax level via conventional metaprogramming.\r\n\r\nThe exact content and methods presented in this talk are likely to break without warning, as they use extensively the internals of the language which are subject to change without regards to SemVer.\r\nHowever, the general learning and approach will remain relevant.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "664a19d5-5ffa-5ed2-a817-b29b98221b23", "id": 1095, "code": "ECUZBT", "public_name": "Frames Catherine White", "avatar": "https://pretalx.com/media/avatars/72975308c5458a5e25cbedba12465294_hmwBxaw.jpg", "biography": "Frames has been creating cursed Julia code since 2014. Her particular interests are compiler stuff, automatic differentiation, machine learning and optimization. She maintains more Julia packages than she can count. She has a PhD in natural language processing, and undergraduate degrees in electrical engineering, pure mathematics, and computation.\r\nShe has worked at Invenia Labs (RSE team), JuliaHub (CedarEDA), and is currently looking for new opportunities.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/D88XFU/", "id": 44428, "guid": "f4b9bef4-284c-53e2-a343-43c6af67b6ea", "date": "2024-07-10T11:30:00+02:00", "start": "11:30", "logo": null, "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-44428-compiler-plugins-and-non-native-execution-caching", "title": "Compiler plugins and non-native execution caching", "subtitle": "", "track": "Julia Internals and Tooling", "type": "Talk", "language": "en", "abstract": "Recent improvements to compilation caching in Julia have made it feel a lot more snappy :)\r\nExcept when you use non-native compilation (think GPUs or Automatic Differentiation) :(\r\nIn this talk I will dive into recent progress on non-native compilation caching, how Julia performs caching in the first place and my thoughts on compiler plugins", "description": "Compiler plugins have a rich history in Julia, starting with approaches like Cassette.jl (and it's cousin IRTools.jl) that used generated function and code reflection to implement non-standard semantics.\r\nThese were followed by a family of tools that extend the compiler interface (`AbstractInterpreter`) and method overlay tables which currently power GPUCompiler.jl and others.\r\n\r\nWhile these tools can perform *within* Julia session caching, they currently can not perform *across* session caching leading to large latency spikes. We will walk through Julia's caching infrastructure, explore the challenges involved and discuss a currently proposed solution.\r\n\r\nA secondary challenge with the use of `AbstractInterpreter` based tools is that there is no robust execution story, there is hope that the solving the non-native caching problem will also enable a solution for the execution of non-native code.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "696a4999-e24f-5ec0-9f1c-df59b05eb983", "id": 903, "code": "3C7UBC", "public_name": "Valentin Churavy", "avatar": null, "biography": "PhD student at the MIT JuliaLab", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/U739BS/", "id": 44189, "guid": "57258fc6-75eb-5727-b071-003ca5d3c3d7", "date": "2024-07-10T12:00:00+02:00", "start": "12:00", "logo": null, "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-44189-secure-numerical-computations-using-fully-homomorphic-encryption", "title": "Secure numerical computations using fully homomorphic encryption", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "Homomorphic encryption allows one to perform computations on encrypted data and obtain the\r\nsame result as with the original, unencrypted data. This makes it possible to securely\r\nprocess sensitive data in untrusted compute environments. In this talk, we will demonstrate\r\nhow to easily set up and run homomorphically encrypted computations in Julia and show\r\nwhich kind of operations are possible. We will present examples for secure algorithms and\r\ndiscuss challenges and limitations in practice.", "description": "Today's widespread availability of commercial cloud providers makes it possible for many researchers and companies to offload compute-intensive tasks to machines in the cloud. However, processing sensitive information such as engineering, financial, or medical data on cloud systems comes with an inherent risk of data exposure or theft in case the systems are compromised. Homomorphic encryption can mitigate this risk by not requiring any trust in the compute environment: Since the data is encrypted before being transferred to the cloud, the underlying raw information cannot be obtained by a malicious party as long as the decryption key is stored securely on premises.\r\n\r\nThere exist several open-source libraries for performing homomorphic encryption, most of which are implemented in compiled languages such as C/C++. They are often nontrivial to use and require a compiler (and frequent recompilation) during development. Our goal is therefore to lower the threshold for using modern, high-performance homomorphic encryption implementations and to facilitate rapid prototyping for experimentation with new applications. For this purpose, we have created two Julia packages, [OpenFHE.jl](/~https://github.com/sloede/OpenFHE.jl) and [SecureArithmetic.jl](/~https://github.com/sloede/SecureArithmetic.jl). OpenFHE.jl wraps the state-of-the-art C++ library [OpenFHE](/~https://github.com/openfheorg/openfhe-development) and provides Julia bindings via [CxxWrap.jl](/~https://github.com/JuliaInterop/CxxWrap.jl). All required binaries are available as precompiled JLL packages and are downloaded automatically upon installation. SecureArithmetic.jl is a convenience layer on top of OpenFHE.jl, allowing one to express homomorphic encryption algorithms in a more succinct and easier-to-understand manner. The idea is that one can use SecureArithmetic.jl for initial prototyping of new ideas, and to then switch to OpenFHE.jl primitives only where more detailed control is necessary.\r\n\r\nWe will begin this talk with a brief introduction to the fundamental concepts of homomorphic encryption in general and the CKKS scheme for approximate computations with real numbers in particular. This is followed by a demonstration of how to use homomorphic encryption in Julia using OpenFHE.jl and SecureArithmetic.jl. We will present some examples for secure algorithms building upon these packages, such as the numerical simulation of partial differential equations. Finally, we will discuss some of the challenges experienced when working with homomorphic encryption and analyze practical limitations such as performance or algorithmic complexity.\r\n\r\nThe target audience for this talk is computational scientists and research software engineers interested in secure numerical computations with Julia. No prior knowledge of homomorphic encryption is required. Some familiarity with numerical methods for partial differential equations is helpful but not strictly necessary.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "a61b649c-a885-554f-bb6b-fa6667795d5d", "id": 10161, "code": "ZBB3MC", "public_name": "Michael Schlottke-Lakemper", "avatar": "https://pretalx.com/media/avatars/avatar-2022_CRSkKYH.jpg", "biography": null, "answers": []}, {"guid": "028eba20-53f3-50dd-b2ca-d53d750fea82", "id": 39825, "code": "VB8EW7", "public_name": "Arseniy Kholod", "avatar": "https://pretalx.com/media/avatars/20240102_124203_jom4wEK.jpg", "biography": "I am a student in RWTH Aachen university majoring in computational engineering science.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/F9JTK3/", "id": 44163, "guid": "b8df64e6-a211-52b6-86ce-88067e6d9aa3", "date": "2024-07-10T14:00:00+02:00", "start": "14:00", "logo": null, "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-44163-the-cryptography-packages-in-julia-what-is-missing-", "title": "The cryptography packages in Julia \ud83d\udd10: What is missing?", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "Cryptography is a necessity for everyday life as well as for industrial applications. However, Julia packages seem to be lagging behind. What can we do about this?", "description": "This is an analysis and comparison of the existing packages in Julia and what is needed to be as complete as other programming languages, e.g. python and rust.\r\n\r\nPython has a plethora of cryptographic packages that are very easy to use and are widespread. This for sure has helped on python adoption. Sometimes vendors write solutions in their preferred programming language, e.g. Java, C, C#, etc, and also they go out of their way to also have a python version.\r\nOther languages like Rust and Go also have a large cryptography ecosystem, sometimes more than one package for the same application.\r\n\r\nIn this talk I will survey the current state of cryptographic packages that are available in Julia and what in my opinion is needed to enable julia wider adoption in other areas besides scientific computing.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "466b9132-2798-5e12-8e37-a535b5f6867d", "id": 4125, "code": "QCZCDE", "public_name": "Jorge Alberto Vieyra Salas", "avatar": null, "biography": "Jorge Vieyra", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/CYJ7V7/", "id": 43386, "guid": "00218541-ad06-53c6-bde8-e6c3cff98aac", "date": "2024-07-10T14:30:00+02:00", "start": "14:30", "logo": null, "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-43386--memory-in-julia", "title": "`Memory` in Julia", "subtitle": "", "track": "Julia Internals and Tooling", "type": "Talk", "language": "en", "abstract": "Julia 1.11 rewrites Array from being an opaque type implemented mostly in C to being just another type in Julia. In order to do this, we introduced a new, more primitive type for homogenous data storage, called Memory. Then we could re-use that work to add an AtomicMemory type that allow for better expressing multi-threaded memory operations. And along the way, also added the full set of atomic operators to globals, known as Binding types. In this talk, we we will look at the new Memory type, t", "description": "Prior to Julia 1.10, Array was a special object in Julia. Operations like resizing and creation had to be done completely in C, which created overhead and made some of the code much harder to write and difficult for the compiler to optimize. Array also had some features that were unnecessary for some uses (e.g. resizing and multiple dimensions) which imposed a small cost. To fix this, in /~https://github.com/JuliaLang/julia/pull/51319, we added a new, lower level Memory type, which allowed re-implementing all of Array in Julia code on top of it. This moved much of the complexity around resizing and copying an array into pure Julia code. And it allowed a few important data types, that don\u2019t need all of Array\u2019s features (such as Dict), to avoid a small amount of overhead. This has led to some great performance improvements. For example, push! on Array is now roughly ~2x faster, and a number of types in Base now use slightly less memory.\r\nAlong the way, we also added support for doing more with atomic operations (especially /~https://github.com/JuliaLang/julia/pull/52868). By making a simpler Memory type as the basis for an Array, we could also introduce an AtomicMemory that reused most of the same code (and even shares the GenericMemory base class!). This gives both multi-threaded and single-threaded Julia programs alike new and powerful ways of expressing high performance algorithms.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "bbda124a-14a3-529f-8286-403cd02f8c92", "id": 18363, "code": "QZAY7Y", "public_name": "Oscar Smith", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/UKX9BF/", "id": 44366, "guid": "583534cf-4254-5ecb-b2f7-31e7b8e95761", "date": "2024-07-10T15:00:00+02:00", "start": "15:00", "logo": null, "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-44366-app-support-in-pkg", "title": "App support in Pkg", "subtitle": "", "track": "Julia Internals and Tooling", "type": "Talk", "language": "en", "abstract": "This presentation explores the design and implementation of a new feature in Pkg, enabling the installation of \"apps\" - Julia programs launched directly by their name in the terminal.", "description": "Most Julia packages function as \"libraries,\" loaded by users or other packages, with their functions (API) being subsequently called. However, certain Julia packages are better categorized as \"applications\" where you don't really call any functions in them but either communicate with them though stdin and stdout or via a GUI. Notable examples include Pluto.jl and IJulia.jl. Currently, to launch these, one must initiate a Julia session, load the package, and execute specific commands like `Pluto.run()` or `IJulia.notebook()`.\r\n\r\nFor such application-oriented packages, initiating them by simply typing their name in the terminal would be more convenient. Additionally, installing applications in a shared environment with other packages can lead to compatibility conflicts due to dependency issues.\r\n\r\n\r\nThis presentation introduces a new functionality in Pkg where a Julia package can declare itself to contain applications. Users can then effortlessly install these applications using Pkg, making them readily executable from the terminal. This feature encompasses handling updates, precompilation, and other aspects to ensure a seamless user experience.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "53ae67fb-1a32-5b38-bde1-9fbdf24048bd", "id": 1090, "code": "AS3MKE", "public_name": "Kristoffer Carlsson", "avatar": "https://pretalx.com/media/avatars/589d4b174b72b32180fb573263a3a1a2_PVSFSog.jpg", "biography": "Software engineer for JuliaHub, worked on many open source projects including Pkg.jl, PackageCompiler.jl and Julia itself.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/KGQ8KL/", "id": 44398, "guid": "076d5e31-fe5d-56fe-ab79-52060710ef8e", "date": "2024-07-10T15:30:00+02:00", "start": "15:30", "logo": null, "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-44398-the-public-keyword-and-how-public-apis-work-in-julia", "title": "The `public` keyword and how public APIs work in Julia", "subtitle": "", "track": "Julia Internals and Tooling", "type": "Talk", "language": "en", "abstract": "A well defined public API enables users to update a package with confidence that their code will not break and lets IDEs and the REPL help users discover the public functionality of a package. This talk describes currently available mechanisms and community conventions for declaring a public API, highlights the new `public` keyword and its use in tooling, and discusses future work to help declare APIs more clearly and help folks respect APIs more easily.", "description": "## Motivation for declaring a public API\r\n\r\n- facilitates upgrading packages in conjunction with symver\r\n- documents useful functionality (both to humans and to tooling)\r\n- the existence of a well defined public API prevents folks from using an implicit definition like \"is it documented\" and therefore allows folks to document internals\r\n\r\n## The `public` keyword and it's role in existing conventions\r\n\r\n- \"if it's in the manual it's public\" and why that is problematic for REPL users\r\n- syntax for marking a symbol public\r\n- the current \"if it's marked public and documented\" convention that Julia itself follows\r\n- what to do about behavior not tied to a specific symbol\r\n- interfaces\r\n\r\n## What exactly is marked public\r\n- bindings are marked public\r\n- publicity is recursive\r\n- exports are automatically publicised\r\n\r\n## Tooling support\r\n- REPL helpmode warns displaying the docstring of a nonpublic binding\r\n- REPL autocomplete (#51327)\r\n- other tooling that is added or in progress by the time of the talk\r\n\r\n## Future work\r\n\r\n- marking fields of a struct public\r\n- disabling internal access by default (#52314)\r\n- formally specifying interfaces", "recording_license": "", "do_not_record": false, "persons": [{"guid": "68e94df8-a99a-5d38-84d8-145e7ef0b643", "id": 18161, "code": "UYMQJS", "public_name": "Lilith Hafner", "avatar": "https://pretalx.com/media/avatars/circle_ndxEx8H.jpg", "biography": "I am an artist, scientist, and developer, with a specialty in sorting. Lately I've been exploring how to improve the Julia contributor experience.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/RW8RQS/", "id": 44044, "guid": "2058e484-b334-5439-b49f-5b9e09765c1f", "date": "2024-07-10T16:00:00+02:00", "start": "16:00", "logo": null, "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-44044-renovating-automated-dependency-management-in-julia", "title": "Renovating Automated Dependency Management in Julia", "subtitle": "", "track": "Julia Internals and Tooling", "type": "Talk", "language": "en", "abstract": "A deep dive into dependency management processes, associated tooling, and lessons learned integrating with Julia\u2019s package management system from a different technology stack.", "description": "For the longest time, dependency management in Julia, for all its pros and cons, has had a single answer - CompatHelper. However, there is a much larger ecosystem built around dependency management tooling in general, which doesn\u2019t support Julia.\r\n\r\nThis talk is primarily about dependency management processes, the current state of dependency management in Julia, and how we added Julia support to Renovate, a very popular dependency management tool.\r\n\r\nWe will be giving an overview of the landscape of dependency management tools, highlighting standardised dependency management processes, while emphasising the need for a standardised and popular system that has a wider scope. We will evaluate the merits (and demerits) of the popular options available, keeping in mind their scope of dependency management.\r\n\r\nIn particular, we will talk about Renovate, and the efforts to add Julia support to it. We will discuss what \u201cadding Julia support to Renovate'' entails. This covers the underlying structure of how Renovate works giving insight into the processes and workflows it would support, and more importantly, how we integrated it to work with Julia (specifically, with Julia's package management system).\r\n\r\nOf course, any such endeavour to add tooling support is not without challenges, and as such, we will discuss the challenges we\u2019ve faced and what it would take to overcome them.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "91b10150-a077-5101-9e2c-b21d30356be1", "id": 26280, "code": "EWCJB7", "public_name": "Anant Thazhemadam", "avatar": "https://pretalx.com/media/avatars/1689087757336_4ZyyNMU.jpeg", "biography": "Anant is a software engineer at JuliaHub, where he works on the JuliaSim suite of products and contributes to open-source Julia ecosystems, primarily SciML. Anant is also easily nerd-sniped.", "answers": []}, {"guid": "6c8827a2-10f6-5d85-b228-32a7c7fb92d3", "id": 4395, "code": "VCBWCT", "public_name": "Joris Kraak", "avatar": "https://pretalx.com/media/avatars/c0d60e9cebf22b77e94c2d2eb4386539_Daalsxb.jpg", "biography": "Joris is the technical team lead for the JuliaSim applications and product team. He has been building reactive apps in Julia and managing their respective codebases for over a decade.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/TKLH9U/", "id": 44478, "guid": "cdb0800a-9c66-5830-8eb8-347e8dfa4f5c", "date": "2024-07-10T16:30:00+02:00", "start": "16:30", "logo": null, "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-44478-pkg-en-route-the-logistics-behind-the-package-manager", "title": "Pkg en route: the logistics behind the package manager", "subtitle": "", "track": "Julia Internals and Tooling", "type": "Talk", "language": "en", "abstract": "Almost every Julia user is well acquainted with the package manager, *Pkg*, and uses it to add, update, and remove packages from their package environments. Behind the scenes Pkg is supported by a global distribution network of Julia-powered *package servers* that host registries, packages, and artifacts. In this talk we will take a look at how this infrastructure is configured and how it is being used to deliver packages from developers to users.", "description": "When adding or updating a package using Pkg the first step is to *resolve* the package environment. The output of the resolver is the version of the package, and the versions of all dependencies, that should be installed. The next step is to make sure the required packages and artifacts are available on the users machine. Since installation directories of packages (`~/.julia/packages`) and artifacts (`~/.julia/artifacts`) are shared between all package environments it is quite likely that some of the required resources are already available, but the remaining ones must must be downloaded.\r\n\r\nBy default Pkg requests missing resources from package servers hosted by the JuliaLang organization at : a global distribution network of over 50 servers spanning 10 server regions and 5 continents. Each server runs an instance of [PkgServer.jl](/~https://github.com/JuliaPackaging/PkgServer.jl) which is an open source reference implementation of a package server written in Julia.\r\n\r\nIn this talk we will take a detailed look at package server infrastructure. We will discuss how Pkg interacts with the servers (the simple *package server protocol*) and the implementation of PkgServer.jl. We will learn how new package releases are routed from developers to users. We will take a look at how is designed and configured in order to minimize data transmission and latency, and show some interesting data and statistics gathered from the server network. Finally we will discuss how one can setup a custom package server for a company, a compute cluster, or simply for your local machine.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "e73678c4-ccbc-594f-9a5c-27cfffd0bf4a", "id": 1115, "code": "FTWNWJ", "public_name": "Fredrik Ekre", "avatar": null, "biography": "Software Engineer at JuliaHub.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/NYEBZW/", "id": 44499, "guid": "37cf673d-dbee-59c3-8ea9-f239679a2f1e", "date": "2024-07-10T17:00:00+02:00", "start": "17:00", "logo": null, "duration": "00:10", "room": "REPL (2, main stage)", "slug": "juliacon2024-44499-service-monitoring-with-prometheus-jl", "title": "Service monitoring with Prometheus.jl", "subtitle": "", "track": "Julia Internals and Tooling", "type": "Lightning talk", "language": "en", "abstract": "[Prometheus](https://prometheus.io/) is an open-source monitoring system designed for reliability and scalability and is widely used to collect and analyze metrics from running systems and applications. In this talk I will present [Prometheus.jl](/~https://github.com/fredrikekre/Prometheus.jl) which is Prometheus client library written in Julia.", "description": "To collect metrics Prometheus *pulls* data from the server. In practice this means that Prometheus periodically sends an HTTP request to the server, and the server responds with the metrics it currently exposes. A metric can be almost anything, for example the total number of HTTP requests the server have received, or the total amount of allocated memory. On the server side it is thus necessary with a client library that gathers the metrics and responds to the HTTP request.\r\n\r\nIn this talk I will present the Julia client library [Prometheus.jl](/~https://github.com/fredrikekre/Prometheus.jl) which seemlessly enables Prometheus integration for services running Julia. I will showcase the available functionality and demonstrate how to integrate into an existing Julia application. Finally, as a case study, I will discuss how Prometheus.jl has been integrated into the global package server network behind Pkg.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "e73678c4-ccbc-594f-9a5c-27cfffd0bf4a", "id": 1115, "code": "FTWNWJ", "public_name": "Fredrik Ekre", "avatar": null, "biography": "Software Engineer at JuliaHub.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/FR8MVT/", "id": 44421, "guid": "d456b1cc-e656-52b2-86f8-8ad43e777b36", "date": "2024-07-10T17:10:00+02:00", "start": "17:10", "logo": null, "duration": "00:10", "room": "REPL (2, main stage)", "slug": "juliacon2024-44421-scopedvalues-what-are-they-good-for", "title": "ScopedValues -- What are they good for", "subtitle": "", "track": "Julia Internals and Tooling", "type": "Lightning talk", "language": "en", "abstract": "ScopedValues are a new language feature in Julia 1.11, in this talk I will discuss their uses and some implementation details.", "description": "ScopedValues allow for the propagation of values using dynamic scope, that means that in contrast to global values different tasks executing at the same time can see different values.\r\n\r\nThis makes ScopedValues a useful tool for propagation of options in a composable manner.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "696a4999-e24f-5ec0-9f1c-df59b05eb983", "id": 903, "code": "3C7UBC", "public_name": "Valentin Churavy", "avatar": null, "biography": "PhD student at the MIT JuliaLab", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/RDL3SE/", "id": 39779, "guid": "3184a948-09af-563b-ac59-ffc5a8d1d7f2", "date": "2024-07-10T17:20:00+02:00", "start": "17:20", "logo": null, "duration": "00:10", "room": "REPL (2, main stage)", "slug": "juliacon2024-39779-julia-user-developer-survey-2024", "title": "Julia User & Developer Survey 2024", "subtitle": "", "track": "Community", "type": "Lightning talk", "language": "en", "abstract": "The sixth annual Julia User & Developer Survey will survey 1,000+ Julia users and developers about their reasons for choosing Julia, how and why they use Julia, barriers to wider adoption, favorite packages, demographics and more.", "description": "The sixth annual Julia User & Developer Survey will survey 1,000+ Julia users and developers about their reasons for choosing Julia, how and why they use Julia, barriers to wider adoption, favorite packages, demographics and more.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "59017f4d-9fbd-5a67-82a6-2ada538b5c6e", "id": 30820, "code": "NTZHUG", "public_name": "Andrew Claster", "avatar": null, "biography": "Andrew Claster has 25 years of experience as a survey researcher, including 6 years managing the Julia User & Developer Survey and 9 years with JuliaHub. Andrew served as Deputy Chief Analytics Officer for the Barack Obama re-election campaign in 2011-2012.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/RDGSFV/", "id": 45602, "guid": "1c29b058-567d-5bc4-81fe-4dfb6e395abf", "date": "2024-07-10T17:30:00+02:00", "start": "17:30", "logo": null, "duration": "01:00", "room": "REPL (2, main stage)", "slug": "juliacon2024-45602-materials-modeling-bonding-across-atoms-code-and-people", "title": "Materials Modeling: Bonding across atoms, code, and people", "subtitle": "", "track": "Physics & Quantum Chemistry", "type": "Keynote", "language": "en", "abstract": "Current solutions to key 21st-century challenges (such as climate change, food insecurity, healthcare, and communications) are fundamentally limited by the functional properties of known materials. Designing new materials increasingly relies on computational modeling with state-of-the-art workflows frequently interweaving first-principles with empirical modeling as well as data-driven approaches. To make advances, we often must establish novel connections across fields such as physics, chemistry", "description": "Current solutions to key 21st-century challenges (such as climate change, food insecurity, healthcare, and communications) are fundamentally limited by the functional properties of known materials. Designing new materials increasingly relies on computational modeling with state-of-the-art workflows frequently interweaving first-principles with empirical modeling as well as data-driven approaches. To make advances, we often must establish novel connections across fields such as physics, chemistry, computer science, and applied math. The Julia language and user community are well-poised to address these challenges. However, with many well-established software solutions and their respective user communities already in existence, Julia tools cannot just duplicate existing functionality. Rather, it is crucial to integrate and add value to existing (often monolithic) codebases and software ecosystems. In this talk, we will discuss existing efforts in this area --- both by ourselves as well as the broader JuliaMolSim community --- and outline remaining challenges and opportunities going forward.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "92f6ba1a-4576-510a-96f1-f1956d54e51c", "id": 3526, "code": "DZ7WHZ", "public_name": "Michael F. Herbst", "avatar": null, "biography": "Michael is currently a tenure-track assistant professor for mathematics and materials science at EPFL, Lausanne. There he leads the [MatMat](https://matmat.org) research group, which aims to understand simulation error and improve robustness of materials modelling schemes. As part of this effort his group co-develops the [density-functional toolkit](https://dftk.org).", "answers": []}, {"guid": "13340561-072d-5d06-93f2-33b1aaa55b9b", "id": 42982, "code": "N8PSHY", "public_name": "Rachel Kurchin", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/N8UDQS/", "id": 43302, "guid": "c4baa2aa-7af1-5e00-af0f-63bc21d603c6", "date": "2024-07-10T20:00:00+02:00", "start": "20:00", "logo": null, "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-43302--coil-jl-lifting-julia-array-operations-to-mlir-", "title": "\uaa5c Coil.jl - Lifting Julia array operations to MLIR.", "subtitle": "", "track": "Posters", "type": "Poster", "language": "en", "abstract": "Deep Learning models are often composed of a few building blocks operating on tensors with relatively little control flow compared to more traditional code. Coil proposes a mechanism to extract the tensor subprogram from the model call graph and lift its operations to the MLIR representation. By leveraging the IREE compiler stack, Coil is able to fuse and optimize operations across Julia function calls since the whole model can be observed.", "description": "Deep Learning models are often composed of a few building blocks operating on tensors with relatively little control flow compared to more traditional code. Coil proposes a mechanism to extract the tensor subprogram from the model call graph and lift its operations to the MLIR representation. By leveraging the IREE compiler stack, Coil is able to fuse and optimize operations across Julia function calls since the whole model can be observed.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "8bbf98cf-e02b-5405-9e88-adddddfd6ac6", "id": 39131, "code": "8A7MJS", "public_name": "Paul Berg", "avatar": "https://pretalx.com/media/avatars/f31a6f0129ae1b719312f5bf0446d851_uPvClNx.jpg", "biography": "PhD student, Julia enthusiast.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/HGML7Z/", "id": 44141, "guid": "0f04b0d9-3944-58bf-8cce-eb42640f2f2c", "date": "2024-07-10T20:30:00+02:00", "start": "20:30", "logo": null, "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-44141-few-body-integrator-with-time-reversible-adaptivity-in-julia", "title": "Few-body integrator with time-reversible adaptivity in Julia", "subtitle": "", "track": "Posters", "type": "Poster", "language": "en", "abstract": "Time-reversible or symplectic methods are very useful for long-term integration of planetary systems with a constant step size. However, in the case of n-body problems involving close encounters, adaptive time-stepping is required. We present a SIMD-vectorized integrator for few-body problems which incorporates a robust time-reversible adaptivity mechanism that makes it highly performant for the long-term numerical integration of problems with close-encounters.", "description": "Time-reversible or symplectic methods are very useful for long-term integration of planetary systems with a constant step size. The 16th order method implemented in our package SciML/IRKGaussLegendre.jl is both time-reversible and symplectic, and includes a SIMD-vectorized version IRKGL16-SIMD (presented in Juliacon2020) that is particularly efficient for problems without close encounters. However, numerical precision degrades greatly during close encounters if constant step size is employed. Close encounters are common, for instance, in simulations of the orbital evolution of the Solar System when some asteroids or comets are included in the model. Hence, a robust numerical integrator of few-body problems must include some adaptive mechanism to deal with close encounters.\u00a0Unfortunately, with conventional time-step adaptivity strategies the advantages of symplectic methods is lost. \r\n\r\nWe present an integrator for few-body problems, which based on IRKGL16-SIMD, that incorporates a robust time-reversible adaptivity mechanism that makes it highly performant for the long-term numerical integration of problems with close-encounters. Fortunately, time-stepping strategies that preserve the reversible structure of the n-body problem are possible, for instance, by applying reversible stepsize strategies introduced in [1], which require an explicitly given expression of the stepsize as a function of the positions and velocities. In our code, we make use of an appropriate step-size function for the n-problem proposed in our previous work [2,3].\r\n\r\nWe show some numerical experiments with few-body problems that demonstrates the efficiency and robustness of our code.\r\n\r\nRepository: /~https://github.com/mikelehu/NbodyIRKGL16.jl\r\n\r\n\r\nReferences\r\n\r\n- [1] Reversible Long-Term Integration with Variable Stepsizes, E.Hairer and D. Stoffer.\r\nSIAM Journal on Scientific Computing (1997).\r\nhttps://doi.org/10.1137/S1064827595285494\r\n\r\n- [2] Global Time-Renormalization of the Gravitational N-body Problem, M. Anto\u00f1ana, P. Chartier, J. Makazaga and A. Murua. SIAM Journal on Applied Dynamical System (2020). https://doi.org/10.1137/20M1314719.\r\n\r\n- [3] Majorant series for the N-body problem, M. Anto\u00f1ana, P. Chartier and A. Murua.\r\nIternational Journal of Computer Mathematics (2021).\r\nhttps://doi.org/10.1080/00207160.2021.1962848", "recording_license": "", "do_not_record": false, "persons": [{"guid": "140e77dc-1924-5c7b-a348-1bc456dcdeb2", "id": 3318, "code": "UNYAWF", "public_name": "Mikel", "avatar": "https://pretalx.com/media/avatars/MAO_f2GqE8Y.JPG", "biography": "- Mikel Anto\u00f1ana: https://mikelehu.github.io/\r\n- Ander Murua: https://www.ehu.eus/ccwmuura/", "answers": []}, {"guid": "8f901d4b-cf40-5cfa-888d-ad5022789fb8", "id": 21473, "code": "3L7JKD", "public_name": "Ander Murua", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/R8L3AE/", "id": 43509, "guid": "d6b57e59-c8dd-5a60-953a-72e55786b505", "date": "2024-07-10T21:00:00+02:00", "start": "21:00", "logo": null, "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-43509-tsetlin-jl-tsetlin-machines-in-julia", "title": "Tsetlin.jl \u2013 Tsetlin Machines in Julia", "subtitle": "", "track": "Posters", "type": "Poster", "language": "en", "abstract": "We present Tsetlin.jl, a Julia implementation of Tsetlin Machines, which are interpretable machine learning models based on propositional logic. Tsetlin Machines have gained prominence by achieving high accuracy on a variety of problems, while also being efficient in terms of speed, memory use and energy consumption. While the original Tsetlin Machine works on binary data, later extensions can handle continuous and categorical data, and have found applications to images, text and speech. Tsetlin", "description": "In 2018, Prof. Ole Christoffer Granmo introduced the Tsetlin Machine and named it after Michael Lvovitch Tsetlin, who invented the Tsetlin automaton. Tsetlin automata are binary state machines that make decisions based on a reward and penalty scheme, and the Tsetlin Machine recognizes patterns by collaboratively organizing these automata into teams. The Tsetlin automata within a team vote whether a pattern is present or not in the input, and the collective decision determines the output.\r\n\r\nSome advantages of Tsetlin Machines include their interpretability and inherent parallelizability. They have a low energy and memory footprint, yet they have equaled or outperformed state-of-the-art methods on various benchmarks. \r\n\r\nThe algorithms contained in Tsetlin.jl are mostly adapted from the Python versions in /~https://github.com/cair/TsetlinMachine/. As we get more experienced with Julia, we will try to make use of the strengths of the language to improve the efficiency and flexibility of the models.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "1e296fc3-5adb-57da-bd3a-e9bd2efc9138", "id": 39286, "code": "KFXRP3", "public_name": "Darshana Abeyrathna Kuruge", "avatar": "https://pretalx.com/media/avatars/profile-pic_TKEuDG5.jpg", "biography": "Darshana completed his BSc in Mechatronics Engineering at AIT university, Thailand in 2015. Then he joined the Big Data research group at Thammasat University, Thailand for his MSc studies and graduated in 2017. Darshana completed his PhD in Computer Science, specializing in Machine Learning, from the University of Agder, Norway, in 2022. His research interests are in Tsetlin Machine, Artificial Neural Networks, Data Mining, Optimization, and Operations Research. Currently, at DNV, he is working as a senior researcher.", "answers": []}, {"guid": "e7d9a971-37c4-55a6-9478-235ba4533cf2", "id": 39289, "code": "ZF9F8L", "public_name": "Andreas Hafver", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}], "If (1.1)": [{"url": "https://pretalx.com/juliacon2024/talk/DFNXCK/", "id": 44342, "guid": "8a519af7-478f-55a4-b3aa-bf7ad697e45c", "date": "2024-07-10T11:00:00+02:00", "start": "11:00", "logo": null, "duration": "00:30", "room": "If (1.1)", "slug": "juliacon2024-44342-structural-bioinformatics-with-biochemicalalgorithms-jl", "title": "Structural Bioinformatics with BiochemicalAlgorithms.jl", "subtitle": "", "track": "Biology & Life Sciences", "type": "Talk", "language": "en", "abstract": "BiochemicalAlgorithms.jl is a redesign of the popular **B**iochemical **Al**gorithms **L**ibrary (BALL), the largest open source C++-framework of its kind. We focused on three main design goals: efficiency, ease of use and **r**apid **a**pplication **d**evelopment (RAD). Our library provides functionality for file I/O, molecular modelling, molecular mechanics methods, and molecular visualization, and hence can serve as a foundation for developing applications within the Julia ecosystem.", "description": "Development times play a crucial role in the process of implementing structural bioinformatics applications. Ideally, frameworks for molecular modelling and simulation are easy and intuitive to use without sacrificing too much computational efficiency or numerical stability. BiochemicalAlgorithms.jl is our attempt of providing such a framework. BiochemicalAlgorithms.jl is a complete Julia-centric redesign of the popular **B**iochemical **Al**gorithms **L**ibrary (BALL), the largest open source C++-framework for structural bioinformatics, created in 1996 [1,2].\r\n \r\nSwitching our development from C++ to Julia has greatly simplified conforming to our design goals in many ways. While setting up a development environment for BALL is a highly nontrivial task these days, installing BiochemicalAlgorithms.jl is trivial. The code in BiochemicalAlgorithms.jl is -- in our opinion -- often much more readable, with greatly reduced boilerplate, and much closer to the abstract algorithmic formulations. The availability of high-quality numerical code for many problems we face in structural bioinformatics also helps to greatly improve code quality and accelerates development.\r\n \r\nWhile the port to Julia is not yet feature-complete, BiochemicalAlgorithms.jl already provides well documented core data structures for typical molecular entities such as atoms, bonds, molecules, etc. These core data structures are accompanied by a selection of molecular modelling and mechanics techniques. Software packages in structural bioinformatics often focus on one or two specific tasks such as the implementation of a force field. In contrast, BiochemialAlgorithms.jl, accompanied by the visualization counterpart BiochemicalVisualization.jl, attempts to cover the full molecular modelling pipeline, containing building blocks such as file import and export of several molecular file formats, methods for inferring missing atoms, bond building algorithms, molecular force fields, structural optimization, and docking algorithms.\r\n \r\nBiochemicalAlgorithms.jl's structured interface enables the rapid prototyping of ideas, such as the implementation of new energy functions or docking algorithms, as well as fully featured applications, and is suited for the interoperability with other Julia packages for molecular modelling like Molly.jl [3]. Together with Julia's excellent ecosystem for scientific machine learning, it can form the basis for novel applications of deep learning techniques (using, e.g., Flux.jl[5]) in the context of molecular modelling and simulations, or of Bayesian optimization techniques (using Turing.jl[4]) for molecular docking.\r\n \r\nIn our talk, we will show how to perform common tasks in structural bioinformatics, such as reading molecular structures from files, preprocessing them to add missing atoms and bonds, inferring atom types, performing structural optimization, and run a docking algorithm. Further, we will demonstrate how our framework can be used to easily implement new methods and algorithms.\r\n \r\n \r\n### References\r\n[1] Hildebrandt, A. et al. BALL - biochemical algorithms library 1.3. BMC Bioinformatics 11, 531 (2010). \r\n[2] Kohlbacher, O. & Lenhof, H.-P. BALL\u2014rapid software prototyping in computational molecular biology. Bioinformatics 16, 815\u2013824 (2000). \r\n[3] Greener, J. G. Differentiable simulation to develop molecular dynamics force fields for disordered proteins. 2023.08.29.555352 Preprint at https://doi.org/10.1101/2023.08.29.555352 (2023). \r\n[4] Innes, M. et al. Fashionable Modelling with Flux. Preprint at https://doi.org/10.48550/arXiv.1811.01457 (2018). \r\n[5] Ge, H., Xu, K. & Ghahramani, Z. Turing: A Language for Flexible Probabilistic Inference. in Proceedings of the Twenty-First International Conference on Artificial Intelligence and Statistics 1682\u20131690 (PMLR, 2018).", "recording_license": "", "do_not_record": false, "persons": [{"guid": "9f7793a2-7736-5865-9210-1cc15e103299", "id": 39925, "code": "TFSKAR", "public_name": "Jennifer Leclaire", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/RM9TMC/", "id": 44356, "guid": "7f477fb7-0cd1-5001-a090-ed76dcae21d6", "date": "2024-07-10T11:30:00+02:00", "start": "11:30", "logo": null, "duration": "00:10", "room": "If (1.1)", "slug": "juliacon2024-44356-mitos-evolution-riding-the-bioinformatics-wave", "title": "MIToS Evolution: Riding the Bioinformatics Wave", "subtitle": "", "track": "Biology & Life Sciences", "type": "Lightning talk", "language": "en", "abstract": "I will introduce the latest enhancements in MIToS. MIToS is a Julia package crucial in bioinformatics for analyzing protein sequences and structures. It has undergone several updates, including modernized Pfam, SIFTS, and PDB modules and advanced merging operations in the MSA module. A cookbook has also been introduced, offering practical insights into MIToS' capabilities. Attendees can learn about the current state and exciting future of MIToS.", "description": "In this presentation, I will explore the latest updates and future directions of MIToS, an essential Julia package for bioinformatics that focuses on protein sequences and structures. MIToS has undergone several updates to keep up with the rapidly changing landscape of bioinformatics, especially in this era of deep learning and big data.\r\nThe talk will begin with a brief introduction to the evolution of bioinformatics to understand the importance and impact of the recent MIToS updates. I will then focus on some of the most significant adaptations, highlighting the new concatenation capabilities of the MSA module. Next, I will present the MIToS Cookbook to demonstrate how attendees can effectively utilize MIToS for various bioinformatics tasks. Finally, I will conclude the talk with a future outlook for MIToS, discussing potential upcoming features and modifications. I will also discuss the planned integration with BioJulia, emphasizing the synergy between MIToS and other Julia community packages.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "5a627cd5-44fc-56a8-b1d0-8fb36b390970", "id": 39942, "code": "CQ8WFY", "public_name": "Diego Javier Zea", "avatar": "https://pretalx.com/media/avatars/XProfile_oznRM8D.jpg", "biography": "Associate Professor at Universit\u00e9 Paris-Saclay, interested in protein structure, interactions, and evolution.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/E77Z9D/", "id": 44486, "guid": "4b50f40f-465e-5bb9-b7b7-8b161cb9a590", "date": "2024-07-10T11:40:00+02:00", "start": "11:40", "logo": null, "duration": "00:10", "room": "If (1.1)", "slug": "juliacon2024-44486-neurodynamics-jl-next-generation-models-in-neuroscience", "title": "NeuroDynamics.jl: Next generation models in neuroscience", "subtitle": "", "track": "Biology & Life Sciences", "type": "Lightning talk", "language": "en", "abstract": "Today, neuroscience is generating data more than ever before. A central challenge is how to effectively leverage this unprecented data deluge while embracing existing and emerging domain knowedge. We discuss how emerging developments happening in scientific machine learning present untapped opportunities to advance the field. To harness this potential, we present the first version of NeuroDynamics.jl which aims to provide the building blocks towards next generation modelling in neuroscience.", "description": "While the causes of single neuron spikes have been understood for decades, the processes that support collective neural behavior in large-scale cortical systems are less clear. Understanding such large-scale processes is essential to uncover the neural basis underlying cognitive and behavioral functions and dysfunction. Thus, modeling neural dynamics across different scales of organization and levels of abstraction has been an area of great interest in neuroscience.\r\n\r\nIn our work, we aim to develop a framework to enable the integration of different modeling techniques under a common language. NeuroDynamics.jl provides a suite of well-established and emerging models used in neuroscience. These range from biophysical, phenomenological, data-driven, and, most importantly, hybrid models. These hybrid models capitalize on recent developments in the scientific machine learning community to tackle long-standing challenges that exist with current models. We provide tutorials to show how these hybrid models can be used to understand the neural computation underlying cognitive and behavioral tasks, system identification for neural control, neural decoding, as well as normative modeling of neural function.\r\n\r\nThe long-term vision of NeuroDynamics.jl is to be a one-stop shop for modeling, simulation, analysis, and control of any neural system.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "4864d7a3-abd6-55f7-8fbe-f3c709127ebb", "id": 39882, "code": "LZEFHQ", "public_name": "Ahmed ElGazzar", "avatar": "https://pretalx.com/media/avatars/D1A39E53-3911-49D5-AC71-742E62D969DA_ECH5rRU.JPG", "biography": "Ahmed is a postdoctoral reseacher at the donders institute for brain cognition and behaviour. His research focuses on modelling and control of complex adaptive systems.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/PER87K/", "id": 43439, "guid": "87b2b8cf-d7ac-56ac-b9c5-333901960462", "date": "2024-07-10T11:50:00+02:00", "start": "11:50", "logo": "https://pretalx.com/media/juliacon2024/submissions/PER87K/image_mR5QhaJ.png", "duration": "00:10", "room": "If (1.1)", "slug": "juliacon2024-43439-integrative-stochastic-modeling-using-julia", "title": "Integrative Stochastic Modeling using Julia", "subtitle": "", "track": "Biology & Life Sciences", "type": "Lightning talk", "language": "en", "abstract": "This project leverages the Julia programming language to construct a robust mechanistic model for understanding infectious disease transmission and reporting. Integrating diverse data sources, i.e. officially reported case counts and wastewater measurements, we address the inherent limitations of delayed reports, underascertainment and high stochasticity of observations. The efficiency and modularity of Julia empower us to tackle this complex modeling and estimation task effectively.", "description": "The global spread of the COVID-19 pandemic has highlighted the importance of monitoring the real-time spread and predicting future disease dynamics to inform intervention policies. Mathematical modeling of infectious disease dynamics - including the estimation of relevant parameters - have become a key objective of this effort.\r\nHowever, basing the inference approach solely on confirmed infections yields several challenges. The foremost is the problem of underascertainment of infections. Individuals who do not experience symptoms after being infected are not likely to seek testing. Additionally, insufficient testing capacities and a lack of public awareness may cause underascertainment.\r\nTherefore, our approach proposes a mathematical model combining case count data with wastewater-based surveillance data, which reports the viral concentration in the wastewater from fecal shedding of the infected individuals. Wastewater-based surveillance is a promising tool for monitoring public health, but still in its infancy. One of its major challenges is the inherently high stochasticity of the observations in the low-cases regime. Furthermore, quantitative links to disease dynamics and reliable predictions are still under development. The combination of these two data sources may help to overcome the numerous challenges inherent to each of them.\r\nThe proposed mathematical model consists of a multi-level epidemic model for the dynamics on the population level that jointly models the number of new infections, infection-confirmation lag times and ascertainment probabilities utilizing case count data. This is expanded by an simple advection-dispersion-decay model for the RNA transport in the wastewater. With this, the transmission model can be informed by viral concentration measurements. The resulting multi-hierarchical model is well interpretable due to its mechanistic nature, while taking care of measurement errors and uncertainty in the data using a probabilistic description of the modeled quantities.\r\nParameters are then learned using a Bayesian inference framework based on the likelihood function, which is partly analytically available and partly approximated by sampling schemes. \r\nAfter parameter estimation, we conduct simulation studies to evaluate the performance of the model, including uncertainty quantification and robustness. Furthermore, we then applied the model to publicly available data from Canadian cities.\r\nIn summary, we employ the Julia programming language to simulate the dynamics of an infectious disease by incorporating diverse real-world data sources. Julia's modularity allows a neat integration of the different processes included in the model, while its clear syntax makes it easy to resemble the mathematical formulas needed and reduce code complexity. Especially, the simulation intensive inference framework benefits from Julia's speed and possibility for parallelized computation. With our talk we aim to contribute not only insights into integrative modeling of serious infectious disease, but also provide an overview of our considerations and experiences when solving models with hierarchical random variables using the Julia programming language.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "74780250-0099-57b9-9fe9-b367b1d97e30", "id": 39234, "code": "VAC8J8", "public_name": "Vincent Wieland", "avatar": "https://pretalx.com/media/avatars/photo_homepage_copy_vwTnscM.jpg", "biography": "2020 - B.Sc. Mathematics, University of Bonn\r\n2022 - B.Sc Economics, University of Bonn\r\n2023 - M.Sc Mathematics, University of Bonn\r\nSince April 2023 - PhD Candidate in Mathematics and Life Science, University of Bonn \r\n\r\nCurrently working on stochastic modelling of disease progression and Bayesian inference clinical trajectory analysis.\r\n\r\nContact: vincent.wieland@uni-bonn.de", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/RGCLVE/", "id": 44353, "guid": "2716fe6a-36ea-5ec9-bbb1-916ec0c379d1", "date": "2024-07-10T12:00:00+02:00", "start": "12:00", "logo": "https://pretalx.com/media/juliacon2024/submissions/RGCLVE/Workflow_Harry_fLOs0DQ.png", "duration": "00:30", "room": "If (1.1)", "slug": "juliacon2024-44353-the-personalisation-of-cardiovascuar-models-using-julia", "title": "The personalisation of cardiovascuar models using Julia", "subtitle": "", "track": "Biology & Life Sciences", "type": "Talk", "language": "en", "abstract": "Personalised computational models of cardiovascular physiology have the potential to revolutionise patient-specific diagnosis and prediction. This study introduces a novel workflow that efficiently identifies the optimal bio-markers for cardiovascular personalisation, leveraging ModellingToolKit.jl, GlobalSensitivity.jl and QuasiMonteCarlo.jl. The outcome of our research is a more reliable and more practically focused personalisation of complex cardiovascular models.", "description": "1 - Background and the Problem\r\n\r\nCardiovascular diseases stand as the foremost cause of death globally. Surgeries and treatments aimed at cardiovascular issues carry inherent risks and may not achieve desired clinical outcomes, influenced by patients' specific physical conditions. In the operating theatre, interventional cardiologists have access to increasingly sophisticated measurements for assessing patient vasculature. However, certain physiological quantities remain either indirectly measurable or are prone to measurement noises. Mathematical and computational models play a crucial role in supporting clinical diagnosis and decision-making through in silico Decision Support Systems. Yet, the integration of these in silico models into clinical practice is hindered by the challenge of personalisation - determining the required values for individual patients' model input parameters, some of which are bio-markers, based on measured clinical data. This process involves solving an inverse problem, marked by its complexity, uncertainty, and computational intensity.\r\n\r\n2 - Methods\r\n\r\nRecent advancements in computational data assimilation have led to the development of various cardiovascular models, utilising hemodynamics and other low-order models to quantitatively establish the interdependence of a patient\u2019s systemic and pulmonary vasculature properties. We employ Zero-dimensional (0D) models, mapping physiological variables, such as pressure, volume, and flow, to electrical counterparts like voltage, charge, and current.\r\n\r\nEach physiological compartment has a distinct representation with mechanical parameters portraying the \"true\" physiology of a patient. Structural identifiability analysis is employed to ascertain the estimability of parameters and necessary measurements for personalisation. Sensitivity analysis uncovers the most influential parameters affecting model outputs, while parameter orthogonality analysis examines the independent effects of individual parameters. Through a combination of sensitivity and orthogonality investigations, we identify a set of unique input parameters optimisable to a patient\u2019s data using powerful techniques like the Unscented Kalman Filter (UKF). This comprehensive approach, as illustrated in the attached figure, enhances the precision of personalising complex cardiovascular models, advancing their clinical utility and effectiveness.\r\n\r\n3 - The Julia Aspect\r\n\r\nWhile the research conducted is incredibly applied, there is a computational workflow enabling the intersection between clinical practices and in-silico investigations. In the talk, we examine the different stages of the proposed personalisation workflow and highlight how Julia aids us at each stage. From utilising ModellingToolKit.jl to create cardiovascular models to using GlobalSensitivityAnalysis.jl for studying model uncertainty, along with other packages enabling the generation of personalised cardiovascular models.\r\n\r\nWe will spotlight some of the main challenges encountered in this process and how we've overcome them, such as performing parallel simulations on varying data types and accessing observed variables from MTK. This talk outlines a workflow for those interested in model analysis and emphasises how Julia can be utilised to produce clinically impactful work.\r\n\r\n4 - Achievements and Impact\r\n\r\nThis study introduces a novel workflow efficiently identifying optimal bio-markers for cardiovascular personalisation, incorporating practical and structural identifiability, sensitivity analysis, orthogonality, and Kalman-based optimisation methods to determine the most informative and clinically usable model inputs. The outcome of our research is a more reliable and practically focused personalisation of complex cardiovascular models, empowering clinicians to provide tailored patient-specific treatments. This advancement has significant potential in enhancing cardiovascular diagnosis and ultimately improving patient outcomes. This talk aims to provide others with a workflow on utilising extensive model analysis packages to create a reliable interpretation of any model.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "4aa0a1b5-9443-51b6-a00c-ae7a1c9cbbf4", "id": 26300, "code": "WMTZVU", "public_name": "Harry Saxton", "avatar": "https://pretalx.com/media/avatars/b031d47292ade71479f9408639412cec_JQCklDk.jpg", "biography": "I am a final year PhD student from Sheffield Hallam University \r\n\r\nResearch Summary: Lumped parameter models offer an efficient alternative to assessing a patient\u2019s physiological state, thus\r\nmaking their utilisation in digital twins appealing. Before the models are utilised on clinically relevant data, one has to understand the dynamics, uncertainty and identifiability embedded in the model, leveraging methodologies in global sensitivity\r\nanalysis, orthogonality analysis, profile likelihood and Kalman filtration as means of assessment. The theoretical underpin\u2011\r\nning conducted in this work ensures unique, identifiable patient\u2011specific input parameters.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/ZR9VRZ/", "id": 44147, "guid": "2ba1f55a-f88c-5636-adf3-d88f67ed7ef3", "date": "2024-07-10T14:00:00+02:00", "start": "14:00", "logo": "https://pretalx.com/media/juliacon2024/submissions/ZR9VRZ/bitmap_QLJOvlW.png", "duration": "00:30", "room": "If (1.1)", "slug": "juliacon2024-44147-tools-for-agent-based-modelling-in-developmental-biology", "title": "Tools for agent-based modelling in developmental biology", "subtitle": "", "track": "Biology & Life Sciences", "type": "Talk", "language": "en", "abstract": "Agent-based modeling is a common tool to explore cell migration and morphogenesis. Faced with biology's complexity, such models bring several implementation challenges that require many different tools. \r\n\r\nIn this talk, I want to present several packages that support agent-based modeling, such as **SpatialHashTables.jl**, **BoundedDegreeGraphs.jl**, and **AgentTools.jl**. I will also briefly discuss a numerical method (PBD) suitable for non-overlap conditions.", "description": "Agent-based models (ABM) come in a large variety of different forms and structures, which makes their unified handling challenging and requires a language like Julia, where developers of new models can implement high-performance functions. With [Agents.jl](/~https://github.com/JuliaDynamics/Agents.jl), Julia already has a great platform for agent-based modeling, which integrates well with the ecosystem. Due to the vast scope of agent-based modeling, it is clear that the fundamental logic of some models requires further tools for their efficient implementation. In my talk, I will present a couple of complementary tools that attempt to solve particular challenges that are present, for example, in applications in biology. The packages are:\r\n- [SpatialHashTables.jl](/~https://github.com/SteffenPL/SpatialHashTables.jl), for neighbor detection in unbounded domains with an ABM-friendly interface. A future aim of this package is, in particular, to allow execution on GPUs or even webassembly. \r\n- [BoundedDegreeGraphs.jl](/~https://github.com/SteffenPL/BoundedDegreeGraphs.jl), for allocation-free graphs which allow efficient interaction networks among agents.\r\n- [AgentTools.jl](/~https://github.com/SteffenPL/AgentTools.jl), a small assortment of functions for dealing with JSON or XLSX files to define heterogeneous and dynamic parameters.\r\n\r\nI will also briefly show the numerical method called Position-Based Dynamics (PBD) in Julia, which is one of NVIDIA's primary methods for particle simulations in computer graphics applications. As it has not gained much attention in the mathematical modeling community yet, I want to demonstrate how to use PBD in the context of agent-based modeling to avoid overlap and contact between agents in a simple but effective manner.\r\n\r\nFinally, the talk will show example applications for cell migration, limb bud formation, and epithelial tissue growth to highlight particular challenges for modeling in developmental biology.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "8a96aed2-a95e-5b41-bfa4-2fd63abb39f8", "id": 39787, "code": "HDVDAM", "public_name": "Steffen Plunder", "avatar": "https://pretalx.com/media/avatars/4634605_oEaZqYf.jpeg", "biography": "I apply mathematics and computer science to developmental biology. My primary research aim is to develop and use detailed mathematical models to help biologists with questions inaccessible via experiments.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/LBU8QU/", "id": 43080, "guid": "8b4b0b99-bf48-52d0-b18d-97b4f8944644", "date": "2024-07-10T14:30:00+02:00", "start": "14:30", "logo": null, "duration": "00:30", "room": "If (1.1)", "slug": "juliacon2024-43080-netsurvival-jl-a-glimpse-into-relative-survival-analysis", "title": "NetSurvival.jl: A glimpse into relative survival analysis", "subtitle": "", "track": "Biology & Life Sciences", "type": "Talk", "language": "en", "abstract": "The NetSurvival.jl package brings standard relative survival analysis modeling routines in Julia. Relative survival analysis is a branch of survival analysis where individuals are subject to two competing risks, but the cause of death is unknown, often for data quality reasons. In these circumstances, standard competing risks approaches are unusable and specific estimators and methods are used (e.g. Pohar-Perme net survival estimator, Graffeo's log-rank-type test among others).", "description": "Data arising from large cancer studies often lack reliable information about the cause of death (supposed binary: death from the studied cancer or from other causes) for each individual. Relative survival analysis is a subfield of survival analysis specifically targeted at this particular type of datasets. The field's goal is to extract survival curves that only takes into account the deaths from cancer, the so-called net survival curves, for comparison purposes between different groups or directly for diagnostic purposes. For that, a few standard estimators were established in the last 50 years, backed by a wide literature.\r\n\r\nStandard tools nowadays are composed of R packages, with underlying C and C++ routines, that are hard to read, maintain, and globally use. This package is an attempt to provide a fast, reliable, but most importantly easily maintainable package to implement standard estimators and routines from the field onto the `StatsModels.jl` API. Our hope is that the junction with classical modeling API in Julia will allow later extensions of the existing modeling methods, with a simple interface for the practitioners. \r\n\r\nIn this talk, we present the current state of the implementation: the few tools and methods that were implemented, their integration into the Julian ecosystem, and we showcase the functionalities and performance of the implemented methods. We particularly note that the use of native Julia allows for concision and readability of the code.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "d2f17956-2a06-5d43-b84a-d0a0416bb1b0", "id": 24356, "code": "E9PVET", "public_name": "Oskar Laverny", "avatar": "https://pretalx.com/media/avatars/avatar_2_73tDY5Z.png", "biography": "I am currently an associate professor *(maitre de conf\u00e9rence)* in statistics at the SESSTIM in Marseille (France). Actuary by formation, I focus my researches on high dimensional statistics and dependence structures estimations, with a lot of applications in insurence, reinsurence, and more recently public health. I do have a taste for numerical code and open-source software, and most of my work is freely available on Github.", "answers": []}, {"guid": "6879f203-2e70-59e7-b7da-08b378230f16", "id": 42271, "code": "TQJXPH", "public_name": "Rim Alhajal", "avatar": "https://pretalx.com/media/avatars/IMG_5158_GfSC2XH.jpg", "biography": "I am a statistics / data science master's student, currently doing my end of year internship at the SESSTIM in Marseille, France.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/Z8MJK8/", "id": 44505, "guid": "de1cd012-bc18-53c9-8e96-cbbcbed06027", "date": "2024-07-10T15:00:00+02:00", "start": "15:00", "logo": null, "duration": "00:30", "room": "If (1.1)", "slug": "juliacon2024-44505-cognitive-computational-modeling-made-easy-with-julia", "title": "Cognitive computational modeling made easy with Julia", "subtitle": "", "track": "Biology & Life Sciences", "type": "Talk", "language": "en", "abstract": "Two packages are presented here for cognitive computational modeling. ActionModels.jl builds on Turing, and provides an easy interface for agent-based modeling and hierarchical Bayesian parameter estimation - including regressions, using TuringGLM - of action models of the kind used in computational psychiatry, cognitive modeling, and game theory. As an example, HierarchicalGaussianFiltering.jl then provides easy access to the HGF, a complex and generally applicable predictive processing model.", "description": "With the computational turn psychiatry, cognitive science and neuroscience, there has been an increase in demand for computational cognitive modeling; that is, building computational models of cognitive processes such as learning, perception, memory and decision making. These models can be used for simulation, providing theoretically founded empirical predictions. Often, they are also fitted to participant behaviour in order to estimate per-participant model parameters - used for assessing and building theories based on empirical data, and for finding differences between for example clinical populations, which may in turn be used for diagnostic purposes. The current gold-standard in the field is to use probabilistic languages for Markov Chain Monte Carlo sampling for Bayesian parameter estimation. Due to sparsity of data, and inherent hierarchical structures of many experimental designs, models benefit from hierarchical parameter estimation. The estimated parameters are then often used in regression analyses to test for correlations with experimental implementations and other predictors, but since this is done in a separate step, information is lost. The optimal strategy is therefore to have hierarchical regression and cognitive model in the same model. This is for many researchers, however, often not technically feasible, for it requires knowledge of specialized modeling languages like STAN, and to be able to specify custom regressions and hierarchical parameter structures by hand. Simultaneously, programming custom models can be complicated in itself, providing a technical barrier that is arguably among the greatest limitations for cognitive computational modeling. \r\nLeveraging Julia's powerful modeling library Turing, and exploiting the solution to the two-language problem present in other available software solutions, ActionsModels.jl provides a generally applicable and easy-to-use framework for cognitive and behavioural modeling. Needing only a simple input-output structure specified by the user - and containing an array of the most used cognitive models from the field - this package lets the user flexibly simulate from one or multiple models, and provides an easy, TuringGLM-based framework for including multilevel regressions (i.e., statistical models) and cognitive models (or, more generally, action models) in one framework. This should make cognitive computaitonal modeling available to the broader scientific community without sacrificing the customisability that high-end users will rely on. As an example of using the package for complex models, I also present HierarchicalGaussianFiltering.jl, which implements the generalized Hierarchical Gaussian Filter (HGF), a generally applicable variational Bayesian predictive processing based computational model of learning and perception. In its new, generalized form, the HGF can be used to create cognitive models for a variety of tasks and contexts - and can, due to its close relation to the Kalman Filter, also be used for signal processing in volatile and noisy environments.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "a06111d7-bffd-5e98-aa44-57cac8637ee1", "id": 40012, "code": "HCPU77", "public_name": "Peter Thestrup Waade", "avatar": "https://pretalx.com/media/avatars/PB_ScUGRMR.jpeg", "biography": "PhD student affiliated with Aarhus University and University College London. Specialized in computational cognitive modeling and motion capture research. Also dancer and martial artist.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/K7VK3D/", "id": 43590, "guid": "d535794b-7ca0-57c8-92fe-9f7eb88585e8", "date": "2024-07-10T15:30:00+02:00", "start": "15:30", "logo": null, "duration": "00:30", "room": "If (1.1)", "slug": "juliacon2024-43590-combined-stochastic-models-for-cancer-patient-trajectories", "title": "Combined Stochastic Models for Cancer Patient Trajectories", "subtitle": "", "track": "Biology & Life Sciences", "type": "Talk", "language": "en", "abstract": "This project addresses a critical challenge in clinical data analysis, particularly in oncology. We propose a mathematical model for cancer patients' disease progression, merging stochastic dynamics from various data modalities. Utilizing Bayesian inference, we illustrate this with a simulated study on tumor growth, metastases, and patient survival. Leveraging Julia, our approach provides estimation of combined stochastic models, paving the way for comprehensive clinical trajectory analysis.", "description": "One of today's foremost challenges in analyzing clinical data is the integration of different data modalities. Patients -- especially in oncology -- undergo a wide range of diagnostics which yield diverse measurement types including both discrete and continuous quantities, often in a longitudinal setting, as well as time-to-event data.\r\nIn this project, we develop a computational approach for combining the different stochastic dynamics underlying such measurements into one mathematical model describing cancer patients' disease progression, and demonstrate the use of Bayesian inference for the resulting set of model parameters.\r\nTo illustrate this, we consider a simple example where one observes the size of a primary tumor, the number of different tissues affected by metastases, and the survival status of a patient. The first is growing continuously and modeled as an ordinary or stochastic differential equation, whereas the second and third are discrete events that are described as Poisson jump processes with intensities dependent on the other components. Additionally, we introduce measurement noise on the tumor growth observations. The resulting multidimensional process together with its discrete observations can be seen as a Hidden Markov Model whose parameters are to be estimated.\r\nWe examine two different models from this class, which differ in the description of the continuous primary tumor growth, using simulated datasets. The first uses an exponential growth through an ODE, the second uses a version of a geometric Brownian Motion to represent the tumor size. Both models are then extended via the parametrization of the transition rate parameters through different covariates.\r\nFor the simulation of the continuous processes modelling the tumor growth we use the functionalities of the SciML ecosystem in Julia. However, for the simulation of the two combined jump processes a self-implemented modified next reaction method algorithm showed the most accurate and reliable performance. Therefore, we couple the different simulation algorithms for robust creation of artificial data.\r\nModel parameters are then learned using a likelihood-based Bayesian inference framework. In the simplest ODE case, it is possible to retrieve an closed form of the corresponding likelihood function, which can then be maximized. The posterior distribution of the parameters is then be obtained by the use of MCMC sampling methods. For the SDE case, we provide the computation of an partly analytical and partly approximated likelihood function for the maximum-likelihood estimation and sampling. Furthermore, we leverage advanced Particle filter algorithms, a class of Markov chain Monte Carlo methods targeting the posterior distribution by approximating the likelihood trough repeated sampling of a population of particles, and provide a comparison of the different inference methods.\r\nThe performance of the model, including uncertainty quantification and robustness, is evaluated through an extensive simulation study. We showcase results obtained using an implementation solely in the Julia programming language. The SciML ecosystem provides us with a framework for expressing and solving continuous stochastic processes, whereas Julia's modularity makes it easy to combine these with our own simulation routines for jump processes. Additionally, it also allows a tidy integration of analytical and numerically approximated functions in the simulation-based inference scheme of particle filters. The latter benefits crucially from Julia' speed and parallelization.\r\nIn summary, this newly proposed approach of combining different dynamics into one stochastic model creates valuable groundwork for clinical trajectory analysis, as it allows for a more holistic description of patient outcomes. Furthermore, it sheds light on the interplay of different stochastic processes joined into one single process and starts the development of efficient simulation and estimation methods for such classes of combined stochastic models using the Julia programming language.\r\nIn future work, this can be further extended to study the effect of different therapy choices on patients' survival. Additionally, mixed effects can be included to better incorporate inter-individual variability.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "74780250-0099-57b9-9fe9-b367b1d97e30", "id": 39234, "code": "VAC8J8", "public_name": "Vincent Wieland", "avatar": "https://pretalx.com/media/avatars/photo_homepage_copy_vwTnscM.jpg", "biography": "2020 - B.Sc. Mathematics, University of Bonn\r\n2022 - B.Sc Economics, University of Bonn\r\n2023 - M.Sc Mathematics, University of Bonn\r\nSince April 2023 - PhD Candidate in Mathematics and Life Science, University of Bonn \r\n\r\nCurrently working on stochastic modelling of disease progression and Bayesian inference clinical trajectory analysis.\r\n\r\nContact: vincent.wieland@uni-bonn.de", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/AYASGT/", "id": 43293, "guid": "948e2771-711d-5ef8-8b1b-13bbb2ac1e3e", "date": "2024-07-10T16:00:00+02:00", "start": "16:00", "logo": "https://pretalx.com/media/juliacon2024/submissions/AYASGT/logo_s3ures1.png", "duration": "00:30", "room": "If (1.1)", "slug": "juliacon2024-43293-fast-elegant-set-oriented-numerical-analysis-using-gaio-jl", "title": "Fast, Elegant, Set-oriented Numerical Analysis using GAIO.jl", "subtitle": "", "track": "Math(s)", "type": "Talk", "language": "en", "abstract": "GAIO (Global Analysis of Invariant Objects) is a package for set oriented numerics in dynamical systems. It provides algorithms for discretisation of the Koopman operator among other uses. The Koopman operator has been of much interest in the last decade, since it can be used in order to compute, e.g., almost invariant, cyclic and coherent sets (to name just some uses). Originally written in the 90s in C, GAIO has been redesigned in Julia and is concise, while outperforming the original.", "description": "In this talk, we present a Julia version of GAIO. The data structures and the\r\nalgorithmic interface have been completely redesigned such that the code of the algorithms is very concise and close to their mathematical pseudocode. At the same time, the performance is equal or better than the one of the C version. \r\n\r\nThis is illustrated through an example: an algorithm for computing attractors is devised and implemented. It is tested on a classical example of a strange\r\nattractor from dynamical systems literature. \r\n\r\nGAIO makes extensive use of multiple dispatch to construct various discretisation techniques for cell mapping, as well as to interact with the established scientific computing ecosystem (DynamicalSystems, DifferentialEquations, Makie, etc.). Thanks to Julia's CUDA package, GPU acceleration is as easy as setting a keyword argument during initialisation. This is shown at the end of the talk. \r\n\r\nCode:\r\n/~https://github.com/gaioguys/GAIO.jl\r\n\r\nDocumentation:\r\nhttps://gaioguys.github.io/GAIO.jl/", "recording_license": "", "do_not_record": false, "persons": [{"guid": "408c2647-3c3f-583e-812d-16a1476b40af", "id": 39116, "code": "LK9KS7", "public_name": "April Herwig", "avatar": "https://pretalx.com/media/avatars/74353857_2SED8vu.png", "biography": "I am a mathematician located at the Technical University Munich (TUM) in the department for numerics of complex systems.\r\nGitHub:\r\n/~https://github.com/April-Hannah-Lena", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/DVHRYL/", "id": 44312, "guid": "e9020664-d65d-58ae-acf2-a8b1fda8046e", "date": "2024-07-10T16:30:00+02:00", "start": "16:30", "logo": null, "duration": "00:30", "room": "If (1.1)", "slug": "juliacon2024-44312-real-time-odes-for-sound-synthesis-and-parameter-exploration", "title": "Real Time ODEs for Sound Synthesis and Parameter Exploration", "subtitle": "", "track": "Math(s)", "type": "Talk", "language": "en", "abstract": "In this talk we will present a simple library for rendering audible in real time (audification) the\r\nnumerical solutions of systems of ordinary equations (continuous dynamical systems). This\r\nlibrary can be used as a pedagogical tool for gaining insight on the different kinds of\r\nbifurcations in dynamical systems and also as a resource for creating new sound synthesizers or\r\nthe simulation of musical instruments.", "description": "The qualitative description of continuous dynamical systems relies mainly on the study of the\r\ntopological changes in the organization of the flux in the phase space formed by the variables of\r\nthe system. Here we present a tool that complements the more common visual representation\r\ntaking the variables as a multichannel audio output, after proper time scaling, rendering audible\r\nthe behavior of the system. This is done by streaming the solutions obtained by the\r\nDifferentialEquations.jl package through a wrapper of the PortAudio library. We will\r\npresent some prototypical examples of dynamical systems and show how their audification can\r\nbe used to unveil in a fast way the role played by their control parameters. We will end showing\r\nan example of a saxophone model that can be played in real time through a Pluto interface.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "992701e4-0d5d-5fd4-a57e-b8dbc8bbce53", "id": 39905, "code": "W7KAPS", "public_name": "Manuel Camilo Eguia", "avatar": "https://pretalx.com/media/avatars/IMG_20240520_074720_096_CUK7k2V.jpg", "biography": "Creator of the LAPSo (Laboratorio de Acustica y Percepcion Sonora) at Universidad Nacional de Quilmes (Argentina). Researcher at the Consejo Nacional de Investigaciones Cientificas y Tecnicas (CONICET Argentina).", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/ZLG9BB/", "id": 43342, "guid": "9aa171f2-9914-57b7-93fb-e2fe00af2263", "date": "2024-07-10T17:00:00+02:00", "start": "17:00", "logo": null, "duration": "00:30", "room": "If (1.1)", "slug": "juliacon2024-43342-solve-fractional-differential-equation-with-fractionaldiffeq-jl", "title": "Solve Fractional Differential Equation with FractionalDiffEq.jl", "subtitle": "", "track": "Math(s)", "type": "Talk", "language": "en", "abstract": "Differential equation solving is vital in numerical computing and modeling. Julia's ecosystem excels in this area but lacks tools for fractional differential equations, which are increasingly important. We're introducing FractionalDiffEq.jl, a package for solving these equations. At JuliaCon 2024, we'll discuss its architecture and use in solving complex fractional differential equations, and outline its future development within the SciML ecosystem.", "description": "Fractional-order differential equations have increasingly gained attention as a compelling subject, particularly in recent decades, offering more nuanced representations in natural models from a fractional-order perspective. Tracing back to the origins of 'non-integer' calculus, a concept first contemplated by Leibniz and L'H\u00f4pital, numerous scientific luminaries have contributed tirelessly to the advancement of fractional calculus. This field has proven particularly instrumental in accurately describing phenomena in diverse areas such as viscoelasticity, acoustics, rheology, and polymeric chemistry. Additionally, the application of fractional derivatives has emerged as an exceptionally fitting approach for characterizing the memory and hereditary properties inherent in a variety of materials and processes.\r\n\r\nThe SciML organization has achieved remarkable success in developing numerical solvers for differential equations. However, there are certain types of differential equations that [SciML has not yet supported](/~https://github.com/SciML/DifferentialEquations.jl/issues/461). Since the 20th century, fractional calculus and fractional differential equations have emerged as significant areas of interest in science and engineering, extending the principles of integer-order differential equations. Historically, most numerical software for these equations has been developed in MATLAB and suffered from a lack of consistent maintenance, leaving a gap for unified, user-friendly tools.\r\n\r\nAddressing this need, FractionalDiffEq.jl is an innovative package within the SciML ecosystem, integrating efficient algorithms specifically designed for fractional differential equations (FDEs). Leveraging the common interface of SciML, FractionalDiffEq.jl not only simplifies user interaction but also ensures seamless integration with other SciML packages. Currently, FractionalDiffEq.jl adeptly handles fractional order ordinary differential equations and delayed differential equations, representing a significant stride forward in computational science and engineering tools.\r\n\r\nThe [FractionalDiffEq.jl](/~https://github.com/SciFracX/FractionalDiffEq.jl) package follows the design pattern of DifferentialEquations.jl. To solve a fractional differential equation problem, we first define a ```FDEProblem``` according to our model, use ```FODEProblem``` for common fractional ordinary differential equations, use ```FDDEProblem``` for delay fractional differential equations etc. Then pass the defined problem to ```solve``` function and choose an algorithm to solve our problem.\r\n\r\n```julia\r\nprob = FDEProblem(fun, order, u0, tspan)\r\nsol = solve(prob, alg(), dt)\r\n```\r\n\r\n```julia\r\nprob = FDDEProblem(fun, phi, order, u0, constant_lags=[tau], tspan)\r\nsol = solve(prob, alg(), dt)\r\n```\r\n\r\nThere is still a long way to go for FractionalDiffEq.jl to become a mature package. We are working hard to improve the performance of the package and add more algorithms. The future plans included but not limited to:\r\n\r\n* Keep adding more high performance algorithms.\r\n* Make the usage of API more simple and elegant.\r\n* Write more illustrative documents for usability. \r\n* Integrate with the SciML ecosystem to provide users more useful features.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "11ae14cc-f448-5d1e-a2ca-6263bdd61b52", "id": 16490, "code": "3AZBYK", "public_name": "Qingyu Qu", "avatar": "https://pretalx.com/media/avatars/yicun_M6oAuC0.jpg", "biography": "I am a master's student in machine learning and industrial control systems at Zhejiang University. My research interest focuses on the intersection of machine learning and dynamical systems. I participated in GSoC 2023 with SciML under the NUMFOCUS umbrella.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/X8EKWF/", "id": 44408, "guid": "7a72fad5-7c52-5933-a8eb-565117e4ca64", "date": "2024-07-10T20:00:00+02:00", "start": "20:00", "logo": null, "duration": "00:30", "room": "If (1.1)", "slug": "juliacon2024-44408-datatofunctions-jl-representing-transformed-data-as-a-function", "title": "DataToFunctions.jl: Representing transformed data as a function", "subtitle": "", "track": "Posters", "type": "Poster", "language": "en", "abstract": "This package wraps (measured) data into a function which supports coordinate transformation parameters. Upon calling this returned function, the data is interpolated according to the transformation into an array. Currently supported N-dimensional transformations are shift and zoom, or an affine transformation. It also supports automatic differentiation over its transform parameters, enabling its use in fitting and inverse modeling problems.", "description": "It is sometimes useful to fit measured data (e.g. an image of a star) with a functional representation of the image of a star (the point spread function) parameterized by position, zoom and rotation. However, sometimes such functional model representations are hard to come by. Therefore, high-quality measurements of a star can serve as an example of such a point spread function. \r\nRather than first fitting this example data with another parameterized function (e.g. a polynomial representation) and implementing the required transformation parameters, we simply wrapped the data into a functional representation using `Interpolations.jl`.\r\nFor a fast application of this scheme, it is essential that no memory is allocated for each individual interpolation event. In the current version of `DataToFunctions.jl` we support different coordinate transformations, which are all free of memory allocations during coordinate calculations (using the `StaticArrays.jl` toolbox).\r\nOne coordinate transformation supports shifting and scaling. Another more general one supports an N-dimensional affine transformation based on homogeneous coordinates (i.e. adding one extra dimension of value 1 to each coordinate vector and using an (N+1)x(N+1) matrix for the transformation). For two-dimensions (N=2), there is also an easy-to-use form of the affine transformation, spelling out shift, shear, rotation and scaling as individual parameters.\r\nReturned is a function encapsulating the underlying data to be used for further work, like fitting the new data. The advantage of this method is that we do not fit any function to the measured data. So, we do not approximate the data used for fitting, but use it directly for fitting via interpolation.\r\nWe provide a few examples to showcase possible use-cases of our toolbox.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "66fbaaca-c399-571a-9573-350c4b029506", "id": 39966, "code": "93N3S8", "public_name": "Hossein Zarei Oshtolagh", "avatar": null, "biography": "PhD researcher at FSU Jena", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/YB8CJQ/", "id": 44475, "guid": "36cc3fa8-1d61-58fe-807b-c2991b2f7126", "date": "2024-07-10T20:30:00+02:00", "start": "20:30", "logo": null, "duration": "00:30", "room": "If (1.1)", "slug": "juliacon2024-44475-how-i-created-a-hosted-notebook-service-for-pluto", "title": "How I created a hosted notebook service for Pluto", "subtitle": "", "track": "Posters", "type": "Poster", "language": "en", "abstract": "As many of you may know, I am the creator of cloud.jolin.io, a hosted notebook service for Pluto notebooks.\r\n\r\nI am going to give you background insights about how it works and where it should go.", "description": "The hosted Pluto service is really Pluto-first at its core.\r\nI want to show you, that this brings crucial advantages which are yet unseen in other ecosystems. The biggest one: It enables simplicity for DevOps.\r\n\r\nFurther, you will hear details about Pluto, Kubernetes, Distributed, HTTP, React, etc.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "f7befa64-9abd-5287-a449-dd43b54ab6d8", "id": 4390, "code": "MJPZGQ", "public_name": "Stephan Sahm", "avatar": "https://pretalx.com/media/avatars/jakobsweg-fisterra-fokus-square_aej6Nip.jpg", "biography": "On my journey to bring Pluto and Julia to the data science mass market. \r\n\r\nIf you want to convince your company to support Julia for Data Science, [cloud.jolin.io](https://cloud.jolin.io) is the perfect tool for you! Simply login with your github user at [cloud.jolin.io](https://cloud.jolin.io), a hosted Pluto service.\r\n\r\n\r\nEntrepreneur, Data Scientist/Engineer, Cloud Architect.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/NVFAVL/", "id": 44465, "guid": "57774099-e5e8-5444-b44f-15a9b325839e", "date": "2024-07-10T21:00:00+02:00", "start": "21:00", "logo": null, "duration": "00:03", "room": "If (1.1)", "slug": "juliacon2024-44465-my-experience-with-deep-learning-research-in-julia-", "title": "My Experience With Deep Learning Research in Julia.", "subtitle": "", "track": "General", "type": "Experience", "language": "en", "abstract": "I spent about one year leveraging Julia for DL research in Computer Vision, including using `Flux.jl`, `FastAI.jl`, `Metalhead.jl`, and loading python models through `PyChainCall.jl`. Happy to discuss my experience.", "description": "I spent about one year leveraging Julia for DL research in Computer Vision, including using `Flux.jl`, `FastAI.jl`, `Metalhead.jl`, and loading python models through `PyChainCall.jl`. \r\nHappy to discuss my experience, including the good (flexibililty, hacking packages, fast custom kernels), the bad (missing models, difficulty to collaborate), and the ugly (gradient bugs, precompile time).", "recording_license": "", "do_not_record": false, "persons": [{"guid": "70bb7547-3c92-5048-b57f-6bcd79c8ab43", "id": 39999, "code": "XN93M7", "public_name": "Romeo Valentin", "avatar": "https://pretalx.com/media/avatars/nice_photo_2_compressed_d7bNI9p.jpg", "biography": "- PhD Student at the Stanford Intelligent Systems Lab (SISL), developing certification guidelines for employing data-driven algorithms in safety-critical applications.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/GCNMNT/", "id": 44462, "guid": "2121126b-22bf-588c-af32-333ca8e823d4", "date": "2024-07-10T21:03:00+02:00", "start": "21:03", "logo": null, "duration": "00:03", "room": "If (1.1)", "slug": "juliacon2024-44462-teaching-structural-bioinformatics-with-biochemicalalgorithms-jl", "title": "Teaching Structural Bioinformatics with BiochemicalAlgorithms.jl", "subtitle": "", "track": "General", "type": "Experience", "language": "en", "abstract": "Teaching a structural bioinformatics course is challenging as the audience typically consists of diverse academic backgrounds. Here, we describe our experience on teaching a course based on our framework **BiochemicalAlgorithms.jl**, which is a redesign of the open source C++-framework Biochemical Algorithms Library (BALL). The use of Julia allowed to focus more on the actual teaching goals, while the students of the former C++-based course were distracted by complex development cycles.", "description": "Structural Bioinformatics is a highly interdisciplinary research area. A teaching course in this field typically covers topics from various disciplines such as physics(e.g., Newtonian mechanics), mathematics(numerical optimization) and biochemistry (molecular entities like atoms, molecules,...) etc. In order to run and develop applications successfully a profound knowledge of programming and software development is required. \r\nIn our course, the switch from C++ to Julia enabled the students to focus on learning the algorithms and data structures implemented in BiochemicalAlgorithms.jl. The usage of C++ often impeded learning progress starting already at the level of setting up a development environment for BALL, which is a nontrivial task. In contrast, using Julia resulted in accelerated development times for applications -- based on students feedback -- in more fun.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "9f7793a2-7736-5865-9210-1cc15e103299", "id": 39925, "code": "TFSKAR", "public_name": "Jennifer Leclaire", "avatar": null, "biography": null, "answers": []}, {"guid": "9e251849-8700-513a-a5f2-9cfdf63c7e1e", "id": 43407, "code": "3DRQJK", "public_name": "Andreas Hildebrandt", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/VJ9VQJ/", "id": 43871, "guid": "e380dd25-6b15-5655-b770-cc1d9b6a74ba", "date": "2024-07-10T21:06:00+02:00", "start": "21:06", "logo": null, "duration": "00:03", "room": "If (1.1)", "slug": "juliacon2024-43871-notes-from-an-all-julia-honours-thesis", "title": "Notes from an All-Julia Honours Thesis", "subtitle": "", "track": "General", "type": "Experience", "language": "en", "abstract": "For my Honours thesis, I extended Udell et al.'s work in Generalised Low-Rank Models (GLRMs), making GLRMs a tool for projecting data sets to a \"fair\" space according to various definitions of fairness. This enables the identifying of features that may act as proxy discriminators for protected characteristics such as gender and age. In this talk, I will share my experience of completing a year-long thesis, using Julia as the primary programming language, from zero Julia knowledge.", "description": "I will spend most of the three minutes talking about my journey learning Julia, from first encountering it in Udell et al.'s code to submitting an artifact written entirely in Julia. Because my thesis is in machine learning/computational humanities, I would like to highlight the differences, and in particular the advantages, of programming in Julia where most people would program in Python. It would also be nice to garner interest in making libraries for fair machine learning in Julia, which, as far as I know, do not currently exist.\r\n\r\nTwo major benefits of working with Julia were its performance advantages and intuitive benchmarking suite. As a result, programming in Julia has impacted the outcome of my thesis, especially in particularly tight deadlines. A major moment in my thesis was identifying that my quadratic-time loss function was too computationally expensive to get any meaningful results in time for a major deadline, which I only identified as a result of Julia's benchmarking tools. Being able to compare heap allocations between different algorithms was a major step in my developing a linear-time approximation of my loss function. \r\n\r\nAnother major advantage I found is that Julia is a new language, and the community is tight-knit and supportive. In particular, there was one academic at my home university who is involved in the Julia community, who took the time out to have a meeting with me discussing using distributed programming in Julia to speed up my quadratic-time loss function.\r\n\r\nFinally, I would like to briefly mention some of the challenges I encountered in programming my thesis artifact in Julia. One particular issue I encountered was an incompatibility between Julia's CUDA library and the matrix inverse function in its LinearAlgebra library, which I only managed to solve by closely following the stack trace and reading more deeply about array programming in CUDA.jl.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "22b8dc48-4568-5d91-bfdb-b0c3e18b322e", "id": 39566, "code": "ZJQ7CU", "public_name": "Vikram Sondergaard", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}], "Else (1.3)": [{"url": "https://pretalx.com/juliacon2024/talk/RCXMYX/", "id": 43285, "guid": "d222039b-c770-52ea-be14-ea9622546d23", "date": "2024-07-10T11:00:00+02:00", "start": "11:00", "logo": null, "duration": "00:30", "room": "Else (1.3)", "slug": "juliacon2024-43285-symbolicindexinginterface-jl-symbolic-indexing-for-everyone", "title": "SymbolicIndexingInterface.jl: Symbolic Indexing for Everyone", "subtitle": "", "track": "SciML", "type": "Talk", "language": "en", "abstract": "What's the point of a DSL for modeling if the solution can't be accessed using the model's variables? No one remembers what `sol[1]` is.\r\nSymbolicIndexingInterface.jl is a new package in the SciML ecosystem. It defines an interface to allow symbolically defined systems and their solutions to be efficiently indexed using symbolic variables. Any DSL implementing the common interface will automatically support symbolically indexing the relevant data structures.", "description": "DSLs such as ModelingToolkit allow creating models using symbolic variables and writing the relevant equations similar to how they're written mathematically. SymbolicIndexingInterface was created to allow accessing the values of these symbolic variables without having to dig through internals of the relevant libraries. The intent of `sol[x]` is much more obvious than `sol[1]`. Not to mention, the order of variables is not guaranteed and may be changed by the modeling library.\r\n\r\nMost notably, SymbolicIndexingInterface is designed to be independent of the modeling DSL and symbolic framework, providing access to powerful indexing capabilities if a data structure implements its interface. Any type implementing the interface can be queried for the values of it's symbolic variables. Multiple variables can be queried at once using (arbitrarily nested) tuples and arrays, and the result is type-inferred if the queried collection of variables is completely concretely typed. SymbolicIndexingInterface can create functions that cache the metadata needed to access a particular symbolic quantity, allowing for efficient queries/updates to the same quantity repeatedly.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "a4492e26-33c2-509d-bdb4-648d72167945", "id": 39111, "code": "R8L7WU", "public_name": "Aayush Sabharwal", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/HEFX3B/", "id": 43441, "guid": "6c757b23-af69-5742-b99e-8ceb33c12b18", "date": "2024-07-10T11:30:00+02:00", "start": "11:30", "logo": null, "duration": "00:30", "room": "Else (1.3)", "slug": "juliacon2024-43441-juliasim-modeling-language-composing-complex-systems-with-mtk", "title": "JuliaSim Modeling Language: Composing Complex Systems with MTK", "subtitle": "", "track": "SciML", "type": "Talk", "language": "en", "abstract": "The idea behind the JuliaSim Modeling Language (JSML) was to rethink how we describe the composition of complex system models in ModelingToolkit.jl (MTK). JSML takes a strictly declarative approach and focuses on encapsulating behavior into reusable component models and then composing them into complex hierarchical system models. All imperative aspects of the modeling and still handled via Julia.", "description": "There are several methods for creating models for ModelingToolkit. The simplest way is to declare whatever variables or parameters the model includes along with the equations used to describe the systems behavior. From here, ModelingToolkit finds the most efficient approach for solving that system. It is also possible to use a collection of Julia macros to describe reusable component models and systems composed of these reusable component models.\r\n\r\nThe JuliaSim Modeling Language (JSML) approach adds yet another way of composing ModelingToolkit models. Instead of building on top of Julia imperative semantics to describe and construct models, JSML takes a declarative approach. It provides a domain specific language (DSL) for defining reusable component models (their equations, parameters, connectors) and how these components are connected in order to define systems. The hope is that this DSL provides a very focused way of describing the behavior and composition of models that makes for an easier learning curve, better diagnostics, static analysis and a greater ability to reason about such models. These components will leverage Julia functions for any imperative semantics they require.\r\n\r\nJSML models are fully compatible with both ModelingToolkit.jl as well as the JuliaSim modeling environment. In practice this means that JSML defines not just how the components behave, but also how they are rendered in a graphical environment. Model libraries leverage the Julia package manager and can therefore be fully versioned and dependent on other model libraries.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "2f7ea3e2-fd37-58fe-af57-c062e83b5ac3", "id": 25773, "code": "CEQ7XY", "public_name": "Michael Tiller", "avatar": "https://pretalx.com/media/avatars/Headshot_9k06sI2.png", "biography": "Michael Tiller has a Ph.D. in Mechanical Engineering from the University of Illinois, Urbana-Champaign. He is the Secretary of the Modelica Association, President of the North America Modelica Users' Group, author of two books on Modelica and currently Senior Director of Product Management for JuliaSim at JuliaHub.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/ZFD78L/", "id": 44241, "guid": "8fc4b1a8-898b-50b7-a85c-10d06601c380", "date": "2024-07-10T12:00:00+02:00", "start": "12:00", "logo": null, "duration": "00:30", "room": "Else (1.3)", "slug": "juliacon2024-44241-updates-to-standard-library-the-native-dsl-of-modelingtoolkit", "title": "Updates to Standard Library & The Native DSL of ModelingToolkit", "subtitle": "", "track": "SciML", "type": "Talk", "language": "en", "abstract": "ModelingToolkit Standard Library has adopted several conventions to standardize model definition across Julia. And it has amassed new model libraries.\r\nThe new DSL interface for ModelingToolkit now supports arrays, branching and looping statements and more for building complicated models.\r\nThis talk showcases these.", "description": "New sub-libraries and additional components are added to the ModelingToolkitStandardLibrary (MSL). And the library has adopted sign convention for input components with through variables. These updates will be showcased here.\r\n\r\nThe ModelingToolkit now has a new DSL, @mtkmodel, which greatly simplifies defining models. While simple models are straightforward to define, with branching and looping statements, complicated components can be modeled too. This talk gives more insight into defining such models and interpreting the metadata, including understanding the internal representations of user inputs. This talk will also discuss best practices and conventions in defining components and models, and the interpretation of common error messages.\r\n\r\nAdditionally, this talk will introduce the macro @mtkbuild to assemble a ModelingToolkit model for solving.\r\n\r\nThis talk will be a short guide on all one has to know to use this DSL-based modeling. And it will be a discussion on using and contributing to the ModelingToolkitStandardLibrary.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "83460ae4-ade4-5580-8c1c-4047a044a4db", "id": 26330, "code": "FZNX7W", "public_name": "Venkatesh Prasad", "avatar": "https://pretalx.com/media/avatars/gitavatar_4YsL6Sc.jpg", "biography": "Venkateshprasad Bhat is an Electronics engineer and an avid Julia developer. He currently works at JuliaHub, Inc. He develops modeling and simulation tools and also improves package tooling in Julia. He frequently contributes to open source softwares. Additionally, he likes building robots - especially working on computer vision and electronic circuitry.", "answers": []}, {"guid": "5d72d89e-7e35-5f7c-a040-c8493de28b78", "id": 16567, "code": "XYB7RA", "public_name": "Bradley Carman", "avatar": "https://pretalx.com/media/avatars/biopic_cP5Br3L.jpg", "biography": "Brad Carman, Director of Consulting Services at JuliaHub, is a Mechanical Engineer with over 20 years of system modeling experience at ITW and Instron working on model based design and software applications for hydraulics, controls, heat transfer, vibrations, etc.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/QKU8BE/", "id": 43198, "guid": "3e8f9142-be15-58b6-b08a-f1e48fadd4f7", "date": "2024-07-10T14:00:00+02:00", "start": "14:00", "logo": null, "duration": "00:30", "room": "Else (1.3)", "slug": "juliacon2024-43198-state-of-julia-s-sciml-ecosystem", "title": "State of Julia's SciML Ecosystem", "subtitle": "", "track": "SciML", "type": "Talk", "language": "en", "abstract": "Julia's SciML represents nearly a hundred of some of the most widely used Julia packages. How's it doing? In this talk we will discuss many of the latest improvements, where we are lacking, and the near future roadmap. This is made to be a celebration of our wins and an appreciation of our lingering challenges, highlighting to the community what to be proud of but also what needs more time to cook.", "description": "SciML is huge. If I say \"I am using a SciML package\", that could mean DifferentialEquations.jl, but it could also mean NonlinearSolve.jl, or ExponentialUtilities.jl, MuladdMacro.jl, or anything in the long tail. Yet it is treated, maintained, and documented as a cohesive whole. But in terms of maturity, that is definitely not the case. This talk will highlight and put firm grading on the maturity of different parts of the project, where pieces like the ODE solvers are highly mature while other aspects like GPU-based optimizers or high index DAEs have a medium level of maturity, while other promising and popular libraries such as MethodOfLines.jl have a lot Discourse discussion but are knowingly at an immature stage. Part of this talk is to paint in broad strokes a picture of the current state of the ecosystem to help the general user base better understand the current state of the project.\r\n\r\nBut I think another major point is really, what's next? Some pieces that are immature are the main focus of the current development, especially aspects like boundary value problems, complementary problems, and parallelism in nonlinear optimization. Other areas such as uncertainty quantification schemes have been progressing but comparatively lack the team activity in comparison to some of the other focus areas. We hope to outline the lay of the land but also provide some perspective on the driving forces behind this progression to both highlight our near future goals but also indicate the road blocks that potential contributors can use as a starting point for helping the project themselves.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "6ab02490-d781-5300-94af-5f4ffbefbdff", "id": 904, "code": "WUWQQ3", "public_name": "Chris Rackauckas", "avatar": "https://pretalx.com/media/avatars/ChristopherRackauckas101_Rl0yCrY.jpg", "biography": "Dr. Chris Rackauckas is the VP of Modeling and Simulation at JuliaHub, the Director of Scientific Research at Pumas-AI, Co-PI of the Julia Lab at MIT, and the lead developer of the SciML Open Source Software Organization. For his work in mechanistic machine learning, his work is credited for the 15,000x acceleration of NASA Launch Services simulations and recently demonstrated a 60x-570x acceleration over Modelica tools in HVAC simulation, earning Chris the US Air Force Artificial Intelligence Accelerator Scientific Excellence Award. See more at https://chrisrackauckas.com/. He is the lead developer of the Pumas project and has received a top presentation award at every ACoP in the last 3 years for improving methods for uncertainty quantification, automated GPU acceleration of nonlinear mixed effects modeling (NLME), and machine learning assisted construction of NLME models with DeepNLME. For these achievements, Chris received the Emerging Scientist award from ISoP.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/NY8P98/", "id": 43391, "guid": "2e9f066b-5ce7-53e7-a8d5-74f4b8cea88c", "date": "2024-07-10T14:30:00+02:00", "start": "14:30", "logo": null, "duration": "00:30", "room": "Else (1.3)", "slug": "juliacon2024-43391-petab-jl-efficient-parameter-estimation-for-dynamic-models", "title": "PEtab.jl - Efficient parameter estimation for dynamic models", "subtitle": "", "track": "SciML", "type": "Talk", "language": "en", "abstract": "Dynamic models via ordinary differential equations (ODEs) are often used to model biological processes. However, ODE models often have unknown parameters that must be estimated from data. This corresponds to minimizing an objective function. PEtab.jl is a Julia package for setting up parameter estimation problems for dynamic models in Julia. Here, I will introduce PEtab.jl, and benchmark results on how PEtab compares against non-Julia tools for parameter estimation.", "description": "Dynamic model in biology and in the pharmaceutical industry often have unknown model parameter, such as reaction rates, that must be estimated from experimental time-series data. This parameter estimation problem involves formulating a likelihood function, which subsequently is minimized via numerical methods. For simple cases, the likelihood function can easily be coded by using the SciML ecosystem in Julia. However, for more complex cases, like when the model includes events, data is collected under various simulation conditions, or the model should be at a steady state at time zero, correctly coding a likelihood function is a time-consuming and error-prone process. \r\n\r\n[PEtab.jl](/~https://github.com/sebapersson/PEtab.jl) is a Julia package that makes it easy to create parameter estimation problems in Julia. This by leveraging various features from the SciML ecosystem. In this talk I will cover: \r\n\r\n* How to import problems specified in the [PEtab](/~https://github.com/PEtab-dev/PEtab) standard format for parameter estimation problems. \r\n* How to import SBML models with [SBMLImporter.jl](/~https://github.com/sebapersson/SBMLImporter.jl) - the importer used by PEtab to import dynamic models in the SBML standard format. \r\n* How to easily setup parameter estimation problems directly in Julia, where the dynamic models can be provided as either a [Catalyst.jl](/~https://github.com/SciML/Catalyst.jl) `ReactionSystem` or a [ModelingToolkit.jl](/~https://github.com/SciML/ModelingToolkit.jl) `ODESystem`. \r\n* Which gradient computation methods to use. PEtab.jl integrates with ForwardDiff and SciMLSensitivity, allowing gradient computations through both forward and adjoint approaches, however, selecting the best method can be non-trivial. \r\n\r\nLastly, I will address the question: *Should Julia be used for parameter estimating dynamic models in biology and pharmaceutical research?* There already exist excellent tools for dynamic modelling in biology, such as [pyPESTO](/~https://github.com/ICB-DCM/pyPESTO), which utilizes [AMICI](/~https://github.com/AMICI-dev/AMICI) as simulation engine. To evaluate how PEtab.jl compares against AMICI we conducted an extensive benchmark on real models with real data.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "6c47b6d9-d4dc-5e9f-af8d-d8648d2549ff", "id": 38826, "code": "P9XUZR", "public_name": "Sebastian Persson", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/99QN9H/", "id": 43121, "guid": "e3d924c2-a0c7-54fa-aacf-5f1cf11a5021", "date": "2024-07-10T15:00:00+02:00", "start": "15:00", "logo": null, "duration": "00:30", "room": "Else (1.3)", "slug": "juliacon2024-43121-docs-ci-tests-error-messages-and-interfaces-in-julia-s-sciml", "title": "Docs, CI Tests, Error Messages, and Interfaces in Julia's SciML", "subtitle": "", "track": "SciML", "type": "Talk", "language": "en", "abstract": "Julia's SciML is a large ecosystem of numerical solvers, modeling tools, utility libraries, and much more. What are the guiding principles of what makes \"a SciML library\"? In this talk we will go into detail about the contribution and code practices of the SciML organization. We will highlight how we've made the interfaces more concrete, the continuous benchmarking practices, high-level error messages, and other improvements seen throughout the last few years.", "description": "The focus of this talk is not on speed and numerics but on infrastructure: how is it done and why. SciML's contribution format is codified in the SciML Style and COLPRAC which specify a repeatable format for large-scale reproducible numerical ecosystems in the Julia ecosystem. We want to share our processes and practices so that other Julia organizations can adopt the policies and procedures we are using to scale.\r\n\r\nThe first discussion is on documentation. The [SciML documentation](https://docs.sciml.ai/Overview/stable/) greatly differs from a standard Julia package documentation because it's documenting hundreds of packages and attempting to not silo them but emphasize how they should be used together. We will discuss some of the high-level design principles involved, how Multidocumenter.jl is used to piece it all together, some of the major wins seen with this approach, and some of the downsides.\r\n\r\nNext we will focus on the testing infrastructure of the SciML organization. The SciML organization might have some of the most expensive and comprehensive testing on Github for open source projects in general, and we will discuss why this is required for detailed studies of numerical solvers. We will discuss the various kinds of tests that are used, including ones not standard in other repos like downstream testing and downgrade testing, all to build a more stable system. All of this discussion is easily repeatable by audience members by simply going to one of the repos and copying the .github/workflows scripts! \r\n\r\nNext we will talk about error messages and interfaces. But Julia doesn't have interfaces? Well with SciML we have over the years built many interface packages to thoroughly document our interfaces and requirements in order to make it easy to statically check for high level correctness directly from type definitions. We will describe why ArrayInterface.jl, StaticArrayInterface.jl, and RecursiveArrayTools.jl exist, the interesting questions like \"if you have an array A, how do you make the best Jacobian matrix for it?\", and the new and improved error messages that SciML throws if interface incompatibility is detected. You will likely learn a lot about the edge cases of generic programming and how the SciML libraries have been made to support \"any wild inputs\", but importantly, understand how that has evolved from the wild west into a maintainable and testable system with strong guarantees on generic behavior.\r\n\r\nFinally, we will discuss the continuous benchmarking practices of the SciML ecosystem. We believe benchmarks are never complete, they are always evolving, and they are not a tool to win arguments but to improve code. Thus what really matters is making benchmarks that evolve over time to continue help you learn more about what the right strategies should be. We will describe how the SciML generic interfaces facilitate easier benchmarking and where we are currently lacking.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "6ab02490-d781-5300-94af-5f4ffbefbdff", "id": 904, "code": "WUWQQ3", "public_name": "Chris Rackauckas", "avatar": "https://pretalx.com/media/avatars/ChristopherRackauckas101_Rl0yCrY.jpg", "biography": "Dr. Chris Rackauckas is the VP of Modeling and Simulation at JuliaHub, the Director of Scientific Research at Pumas-AI, Co-PI of the Julia Lab at MIT, and the lead developer of the SciML Open Source Software Organization. For his work in mechanistic machine learning, his work is credited for the 15,000x acceleration of NASA Launch Services simulations and recently demonstrated a 60x-570x acceleration over Modelica tools in HVAC simulation, earning Chris the US Air Force Artificial Intelligence Accelerator Scientific Excellence Award. See more at https://chrisrackauckas.com/. He is the lead developer of the Pumas project and has received a top presentation award at every ACoP in the last 3 years for improving methods for uncertainty quantification, automated GPU acceleration of nonlinear mixed effects modeling (NLME), and machine learning assisted construction of NLME models with DeepNLME. For these achievements, Chris received the Emerging Scientist award from ISoP.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/SWG7QE/", "id": 42686, "guid": "12ba6dc1-4b66-5f2c-bca9-dbc407e627a8", "date": "2024-07-10T15:30:00+02:00", "start": "15:30", "logo": "https://pretalx.com/media/juliacon2024/submissions/SWG7QE/juliacon_talk_tXGVg5y.png", "duration": "00:10", "room": "Else (1.3)", "slug": "juliacon2024-42686-personalising-models-of-human-blood-sugar-using-sciml", "title": "Personalising Models of Human Blood Sugar using SciML", "subtitle": "", "track": "SciML", "type": "Lightning talk", "language": "en", "abstract": "To improve our understanding of biological processes, dynamic models are built that describe the human blood glucose after a meal. However, these models are typically built based on population averages and therefore cannot capture the full scope of individual dynamics. Using SciML to incorporate machine learning techniques into these models, we aim to improve model personalisability.", "description": "Precision nutrition aims to provide personalised dietary recommendations in order to improve overall metabolic health, opposed to general dietary recommendations. By using the Eindhoven Diabetes Simulator (EDeS), a mechanistic model of human response of blood glucose and insulin to standardised meals, we aim to capture relevant and biologically interpretable parameters of current metabolic health. However, this model was built to describe population average responses and fails to describe the full extent of inter-individual variability.\r\n\r\nTo improve the model's ability to capture personalised meal responses, and to improve the relevance of individual model parameter values, the framework of neural universal differential equations was used. By incorporating a neural network into targeted components of the model, we can specifically increase the model's flexibility, without compromising strong biological bias that enables parameter estimation on limited data. \r\n\r\nIn this talk, we present results on training universal differential equations on sparsely sampled human data using physiology-informed regularisation and the recovery of personalised glucose-driven insulin production using conditional neural networks in universal differential equation models. \r\n\r\nIn this way, the hybrid model enables us to improve our understanding of individual variation in blood sugar responses to meals, and provides interpretable measures to aid in the design of personalised dietary recommendations.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "886537b3-6b49-580e-b36a-d35b487c5553", "id": 38755, "code": "JEHZJY", "public_name": "Max de Rooij", "avatar": "https://pretalx.com/media/avatars/IMG_0154_MgJgCrw.jpeg", "biography": "I\u2019m a PhD candidate in systems biology for metabolic disease at the Department of Biomedical Engineering at Eindhoven University of Technology. I am working on model personalisation with scientific machine learning.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/WR9WPA/", "id": 44453, "guid": "c430559f-a1e6-5c28-af48-2f0469fb245b", "date": "2024-07-10T15:40:00+02:00", "start": "15:40", "logo": null, "duration": "00:10", "room": "Else (1.3)", "slug": "juliacon2024-44453-model-reparametrization-with-structuralidentifiability-jl", "title": "Model reparametrization with StructuralIdentifiability.jl", "subtitle": "", "track": "SciML", "type": "Lightning talk", "language": "en", "abstract": "Structural identifiability is a property of a dynamical model that determines if the model parameters can be inferred uniquely in the absence of noise. StructuralIdentifiability.jl allows to assess the identifiability of dynamical models described by ODEs. In this talk, we will present new functionality in StructuralIdentifiability.jl, which allows one to find all identifiable combinations in the model under consideration and automatically reparametrize the model to make it fully identifiable.", "description": "As a result of recent work, new functionality has been implemented in StructuralIdentifiability.jl. We would like to introduce this functionality in our talk. This new functionality allows the user to find, in a matter of seconds, all rational functions of parameters and states that are identifiable in the model of consideration and, possibly, reparametrize it. To the best of our knowledge, other open-source state of the art software cannot do that.\r\n\r\nIdentifiability analysis and reparametrization is an important step of model design, so we expect that the topic of the talk would be of interest to practitioners in modeling and control.\r\n\r\nDuring the presentation, we will try to avoid the technicalities, and instead focus on simple but meaningful examples. We plan to include a short demo to demonstrate the package capabilities.\r\n\r\nFor further details, one can consult the relevant tutorial pages from the package documentation:\r\nhttps://docs.sciml.ai/StructuralIdentifiability/v0.5.2/tutorials/identifiable_functions/\r\nhttps://docs.sciml.ai/StructuralIdentifiability/v0.5.2/tutorials/reparametrization/\r\n\r\nThis work is a joint result by Alexander Demin, Gleb Pogudin, and Chris Rackauckas.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "85ad2e8b-98da-550e-a53d-db58e3a815ae", "id": 18070, "code": "YJEQBR", "public_name": "Alexander Demin", "avatar": "https://pretalx.com/media/avatars/me2_vnyBzOs.jpg", "biography": "I am a senior at HSE University in Russia. I major in mathematics and computer science.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/ULXMLY/", "id": 44490, "guid": "eb179d79-40b9-5d19-962b-ab56141d0acf", "date": "2024-07-10T15:50:00+02:00", "start": "15:50", "logo": null, "duration": "00:10", "room": "Else (1.3)", "slug": "juliacon2024-44490-raising-the-ki-of-your-sciml-model", "title": "Raising the Ki of your SciML model", "subtitle": "", "track": "SciML", "type": "Lightning talk", "language": "en", "abstract": "In this talk we will show you how to boost your latent SciML model, significantly increasing its performance and data efficiency.\r\n\r\nIn particular, we will present GOKU-UI, an evolution of the continuous-time generative model GOKU-net, which incorporates attention mechanisms and a novel multiple shooting training strategy in the latent space. On both simulated and empirical brain data, it achieves enhanced performance in reconstruction and forecast tasks while effectively capturing brain dynamics.", "description": "Scientific Machine Learning (SciML) is a burgeoning field that synergistically combines domain-aware and interpretable models with agnostic machine learning techniques, often yielding increased interpretability, generalizability, and data efficiency [1, 2, 3]. Latent Ordinary Differential Equations (Latent ODEs)[4, 5] are VAE-like generative models that encode time series data into a latent space ruled by a differential equation which is parametrized by a neural network. Building on Latent ODEs, Linial et al. [6] introduced GOKU-nets (Generative ODE Modeling with Known Unknowns), which fundamental difference with the former is the inclusion of a predefined differential equation structure as a prior for the latent dynamics. Compared to LSTM and Latent-ODE on pendulum videos and cardiovascular system modeling, GOKU-net excelled in reconstruction, forecasting, reduced training data needs, and offered better interpretability.\r\n\r\nWhile leveraging the power of the Julia SciML Ecosystem and Flux, we not only implemented the GOKU-nets in Julia, broadening the original model's spectrum to incorporate other classes of differential equations, but also introduced two key enhancements: (1) the addition of attention mechanisms to the main part of the model that infers the parameters of the differential equations and (2) a novel training strategy based on the multiple shooting technique [7, 8] in the latent space.\r\n\r\nThese modifications have led to a significant increase in its performance in both reconstruction and forecast tasks, as demonstrated by our evaluation on simulated and empirical data. Our _GOKU-nets with Ubiquitous Inference_ (GOKU-UI) outperformed all baseline models on synthetic datasets even with a training set 16-fold smaller, underscoring its remarkable data efficiency. Furthermore, when applied to empirical human brain data, while incorporating stochastic Stuart-Landau oscillators into its dynamical core, our proposed enhancements markedly increased the model's effectiveness in capturing complex brain dynamics. GOKU-UI demonstrated a reconstruction error five times lower than other baselines, and the multiple shooting method reduced the GOKU-nets prediction error for future brain activity up to 15 seconds ahead. By training GOKU-UI on resting state fMRI data, we encoded whole-brain dynamics into a latent representation, learning a low-dimensional dynamical system model that could offer insights into brain functionality and open avenues for practical applications such as the classification of mental states or psychiatric conditions. Ultimately, our research provides further impetus for the field of Scientific Machine Learning, showcasing the potential for advancements when established scientific insights are interwoven with modern machine learning.\r\n\r\nDuring this presentation, attendees will develop a comprehensive understanding of both the foundational GOKU-net model and its advanced iteration, GOKU-UI. We will showcase through experimental evidence the performance improvements these advancements bring, while also explaining the rationale and specific details behind the enhancements. The session aims to provide attendees with valuable, practical insights, empowering them to implement similar strategies in their SciML projects within the Julia ecosystem and advance their own research and applications.\r\n

\r\n

\r\n\r\n[1] Baker, Nathan, et al. Workshop report on basic research needs for scientific machine learning: Core technologies for artificial intelligence. USDOE Office of Science (SC), Washington, DC (United States), 2019.\r\n\r\n[2] Rackauckas, Christopher, et al. \"Universal differential equations for scientific machine learning.\" arXiv preprint arXiv:2001.04385 (2020).\r\n\r\n[3] Shen, Chaopeng, et al. \"Differentiable modelling to unify machine learning and physical models for geosciences.\" Nature Reviews Earth & Environment 4.8 (2023): 552-567.\r\n\r\n[4] Chen, Ricky TQ, et al. \"Neural ordinary differential equations.\" Advances in neural information processing systems 31 (2018).\r\n\r\n[5] Rubanova, Yulia, Ricky TQ Chen, and David K. Duvenaud. \"Latent ordinary differential equations for irregularly-sampled time series.\" Advances in neural information processing systems 32 (2019).\r\n\r\n[6] Linial, Ori, et al. \"Generative ode modeling with known unknowns.\" Proceedings of the Conference on Health, Inference, and Learning. 2021.\r\n\r\n[7] Ribeiro, Ant\u00f4nio H., et al. \"On the smoothness of nonlinear system identification.\" Automatica 121 (2020): 109158.\r\n\r\n[8] Turan, Evren Mert, and Johannes J\u00e4schke. \"Multiple shooting for training neural differential equations on time series.\" IEEE Control Systems Letters 6 (2021): 1897-1902.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "a940814d-a0b7-5296-8d06-ab8b5f1dcb4f", "id": 10472, "code": "VLASWP", "public_name": "Germ\u00e1n Abrevaya", "avatar": "https://pretalx.com/media/avatars/profile_picture_I3yIf63.png", "biography": "I am a Physics PhD student at the University of Buenos Aires, in constant collaboration with Mila and IBM. My research is centered on Scientific Machine Learning (SciML), specifically on how to effectively incorporate prior knowledge into time series machine learning models through differential equations in order to enhance performance, interpretability, and data efficiency.\r\n\r\nI've been applying my models to decode and predict human brain dynamics, but these general methods can be applied to many other domains such as wearables, biomarkers, digital twins, climate, finance, and other applications involving complex high dimensional time series data.\r\n\r\nI am currently in the last months of my PhD program and open to interesting job opportunities.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/DLVCHS/", "id": 44340, "guid": "09ccab6a-fa09-59ea-b0a7-e6aac71137d6", "date": "2024-07-10T16:00:00+02:00", "start": "16:00", "logo": "https://pretalx.com/media/juliacon2024/submissions/DLVCHS/Screenshot_from_2024-01-31_11-27-21_Ccs4isG.png", "duration": "00:10", "room": "Else (1.3)", "slug": "juliacon2024-44340-juliasim-hvac-composing-thermo-fluid-modeling-with-sciml", "title": "JuliaSim HVAC: Composing thermo-fluid modeling with SciML", "subtitle": "", "track": "SciML", "type": "Lightning talk", "language": "en", "abstract": "JuliaSim HVAC provides a comprehensive suite (based upon ModelingToolkit.jl) for the modeling and simulation of complex thermofluid systems via a library of pre-built component and refrigerant models that connect to advanced solvers that are customized to system behavior and are composable with the SciML ecosystem. We demonstrate typical workflows of the HVAC engineer: Parameter Estimation, Design Optimization, Control and Machine-Learning based acceleration.", "description": "Currently, industrial HVAC modelers use disparate tools for each step such as modeling and simulation, calibration, design optimization, control design, and machine learning. We provide an alternative approach leveraging the JuliaSim platform that enables all of these and more activities to be completed in one environment. The JuliaSim HVAC package provides the following features: \r\n\r\n1. Industry-grade pre-built components:\r\n\u2022 Configurable components for Tube-Fin Heat Exchangers, Compressors, Valves,\r\nFans, Conditioned spaces and Pipes\r\n\u2022 Drag and drop in GUI for rapid prototyping\r\n\r\n2. Thermodynamic property models:\r\n\u2022 Spline-based thermodynamic property models for several refrigerants\r\n(such as R32, R1234YF, R290, R152a, R134a, R410A, R717)\r\n\u2022 Dry Air and Moist Air\r\n\r\n3. Robust Solvers: \r\n\u2022 Robust solvers that handle stiff nonlinear discontinuous dynamics\r\n\u2022 Specialized DAE Initialization routines for large-scale models.\r\n\r\n4. Composability with Machine Learning Workflows: \r\n\u2022 Integrate with the Model Optimizer tool for automated model calibration unleashing the power of\r\nautomatic differentiation of the simulator\r\n\u2022 Leverage the Digital Echo tool for model acceleration and smoothing out of irrelevant dynamics using neural surrogates.\r\n\r\n5. Connect to Controls: \r\n\u2022 Integrate with the Control packages for PID, Linear and Nonlinear Model Predictive Control (MPC). \r\n\r\nWe demonstrate some of these workflows highlighting the advantages of performing these in a Julia environment versus the current state-of-the-art.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "28be8211-9d71-546f-b930-3349807d550c", "id": 26229, "code": "JFTD7D", "public_name": "Avinash Subramanian", "avatar": null, "biography": "Software Engineer - Simulation, Control and Optimization at JuliaHub", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/LP3XAL/", "id": 44343, "guid": "7bafcdcb-7583-5157-81f1-b9c15eac0e0b", "date": "2024-07-10T16:10:00+02:00", "start": "16:10", "logo": null, "duration": "00:10", "room": "Else (1.3)", "slug": "juliacon2024-44343-processsimulator-jl-a-differentiable-chemical-process-simulator", "title": "ProcessSimulator.jl: A Differentiable Chemical Process Simulator", "subtitle": "", "track": "SciML", "type": "Lightning talk", "language": "en", "abstract": "ProcessSimulator.jl provides a tool for chemical process modeling - a key workflow in chemical engineering. Built upon ModelingToolkit.jl that enables writing compact representations of physical phenomena occurring in the unit operations, it supports steady-state (with NonlinearSolve.jl) and dynamic simulation (with DifferentialEquations.jl). It interfaces with Clapeyron.jl and various automatic differentiation packages. ProcessSimulator will be made open-source through the SciML organization.", "description": "Process simulation involves connecting multiple unit operation models (such as reactors, separation units, heat exchangers, mixers and splitters etc.) that in sum are involved in the conversion of a feed chemical stream to a product stream. Current commercial tools tend to be siloed, operate as blackboxes and do not provide the functionality of a full-fledged programming language. In addition, supporting next generation workflows requires leveraging recent advances in symbolic-numeric programming and scientific machine learning. ProcessSimulator.jl provides the functionality of both dynamic and steady-state process simulation (process flowsheeting) by making use of the flexibility of\r\nModelingToolkit.jl (MTK) to allow seamless transition between these two modes. While this package is still under active development, the following unique features are highlighted: \r\n\r\n1. Robust process flowsheeting leveraging symbolic transformations and automatic differentiation (AD)\r\n- Process flowsheeting involves the construction and solution of a nonlinear equation system put together by combining descriptive equation models of each of the unit operations involved. Declarative symbolic modeling languages such as MTK allow library developers and users to write compact high-level representations and let the compiler do the work of simplifying and translating these to efficient numerical routines.\r\n- In addition, the generation of exact derivatives for instance by making use of existing AD packages (ForwardDiff.jl, ReverseDiff.jl, Zygote.jl, Enzyme.jl) is key to robust, fast and accurate process simulation.\r\n\r\n2. Interface with Clapeyron.jl - an open-source and extensible thermodynamic property package\r\n\r\n3. System-level Superstructure Optimization\r\n- The package provides an interface to the Julia Math Programming ecosystem (MathOptInterface.jl and JuMP.jl) to provide a large suite of tools for mixed-integer and nonlinear optimization.\r\n\r\n4. Interface with the SciML and DifferentialEquations.jl for dynamic simulation.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "28be8211-9d71-546f-b930-3349807d550c", "id": 26229, "code": "JFTD7D", "public_name": "Avinash Subramanian", "avatar": null, "biography": "Software Engineer - Simulation, Control and Optimization at JuliaHub", "answers": []}, {"guid": "9ddc49e1-c125-5c12-a8eb-99b0bc558240", "id": 39935, "code": "F8UNBD", "public_name": "Vinicius Viena", "avatar": "https://pretalx.com/media/avatars/1000047207_0RqKMHD.jpg", "biography": "Postdoctoral researcher at NTNU working with process systems engineering at the department of chemical engineering.", "answers": []}, {"guid": "3d71b633-a952-5bf4-8961-4548ad84c005", "id": 10419, "code": "ZQMLJ9", "public_name": "Andr\u00e9s Riedemann", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/LSCYQJ/", "id": 44314, "guid": "ab0d75ce-c5d5-5e65-83f7-8237fac43bf7", "date": "2024-07-10T16:20:00+02:00", "start": "16:20", "logo": "https://pretalx.com/media/juliacon2024/submissions/LSCYQJ/lotka_volterra_kZVtRUj.png", "duration": "00:10", "room": "Else (1.3)", "slug": "juliacon2024-44314-fast-parameter-estimation-with-physicsinformedregression-jl", "title": "Fast parameter estimation with PhysicsInformedRegression.jl", "subtitle": "", "track": "SciML", "type": "Lightning talk", "language": "en", "abstract": "In this talk, we present a fast method for estimating parameters from data, when modeling with differential equations.\r\nPhysicsInformedRegression.jl works as an extension to the [SciML](https://sciml.ai/) ecosystem, specifically for symbolic models. It'll be shown how to apply the provided method on simulated data for certain examples (SIR, enzyme reactions, lotka-volterra and lorenz attractor).", "description": "[PhysicsInformedRegression.jl](/~https://github.com/MarcusGalea/PhysicsInformedRegression.jl) is a package which allows the use of [Ordinary Least Squares](https://en.wikipedia.org/wiki/Ordinary_least_squares) to solve the inverse problem for models based on non-linear differential equations. This method has been tested and compared against non-linear optimization methods on Physics Informed Neural Networks, which is an alternative strategy for solving the same problem. Although both methods manage to successfully estimate target parameters, Physics Informed Regression has been shown to outperform in terms of accuracy and speed. Especially for larger and more complicated models. In theory, the method could outperform all non-linear optimization strategies, assuming state derivatives can be computed from data with high accuracy. In our examples we use an implementation of finite differences (`finite_diff`) to compute these derivatives, but in practice alternative methods should be explored, especially for noisy data sampled at a low rate.\r\n\r\nThe method `physics_informed_regression` has been implemented using the [ModelingToolkit](https://docs.sciml.ai/ModelingToolkit/stable/) framework, such that it applies seemlessly to generic models, using only few lines of code. This also implies compatibility with other modules within the ecosystem, such as [Catalyst.jl](https://docs.sciml.ai/Catalyst/stable/) (see enyzyme-reaction example in the repository).", "recording_license": "", "do_not_record": false, "persons": [{"guid": "8481b26c-4402-5493-b85f-d56a09fc0502", "id": 39780, "code": "9CYSSM", "public_name": "Marcus Galea Jacobsen", "avatar": "https://pretalx.com/media/avatars/86fnlq4a_XUUoVHA.png", "biography": "Master student in Human Centered Artificial Intelligence at the Technical University of Denmark (DTU). Student assistant at Novozymes, working on discovering enzyme kinematics from data, using scientific machine learning.", "answers": []}, {"guid": "3f56d3a9-e5fd-591c-bcf1-a72c7b2a018f", "id": 39920, "code": "DWZRQV", "public_name": "Jonas S\u00f8eborg Nielsen", "avatar": "https://pretalx.com/media/avatars/8899afb73c18dab10d0d48652e9c49e6_mo9hlpe.jpg", "biography": "MSc student at DTU.\r\nMathematical Modelling and Computation", "answers": []}, {"guid": "f2f18a3c-a927-569c-ad66-fb28de550e1d", "id": 39968, "code": "KECSS7", "public_name": "Albert Brincker Olson", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/PUXBCN/", "id": 44278, "guid": "28939799-3b69-5dfb-aa3c-db06a82319f9", "date": "2024-07-10T16:30:00+02:00", "start": "16:30", "logo": null, "duration": "00:30", "room": "Else (1.3)", "slug": "juliacon2024-44278-interpretable-hierarchical-calibration-of-agent-based-models", "title": "Interpretable Hierarchical Calibration of Agent-Based Models", "subtitle": "", "track": "SciML", "type": "Talk", "language": "en", "abstract": "Scientific machine learning methods that balance mechanist equations with data-driven inference provide novel surrogates that decompose global from local behaviors inherent to high-fidelity stochastic models. This novel approach to surrogate modeling is pioneering advancements in hierarchal calibration of agent-based models that preserve foundational scientific knowledge.", "description": "Machine-learned models are increasingly being used in lieu of, to complement, or as surrogates for classic computational models. The emerging field of scientific machine learning (SciML) seeks to fuse traditional mathematical modeling with advances in machine learning to handle challenges such as the implementation of numerical solvers, model-form error estimations, and the computational expense of high-fidelity models. SciML models balance mechanist equations with data-driven inference, resulting in computational models that preserve scientific knowledge while readily adapting to the unknown through data-driven discovery. These advancements are setting the foundation for which SciML is providing novel surrogates that decompose global and local behavior inherent to high fidelity stochastic models. This presentation will introduce neural network (NN) function approximations of model-form error to close the gap between ordinary differential equations (ODE) compartmental model to an epidemiological agent-based model (ABM). This universal differential equations surrogate to the ABM allows us to preserve the foundational ODE that represents the global disease dynamics and couples it the NN model-form errors that isolate function approximations for the local behaviors of the ABM. We will then further discussion on using this UDE surrogate to automate hierarchical calibration of ABMs where we decompose global parameter estimations from local parameter influence.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "10a012a3-6356-57d5-8c05-d7ead2db4e59", "id": 39887, "code": "E3TRUE", "public_name": "Erin Acquesta", "avatar": "https://pretalx.com/media/avatars/Erin_Acquesta_2_Oi3kSug.JPG", "biography": "Erin C.S. Acquesta is a Mathematician and Principal Member of the Technical Staff with the Applied Information Sciences Center at Sandia National Laboratories. She received her MS and PhD from North Carolina State University in the field of applied mathematics. Her research areas of interest include scientific machine learning, uncertainty quantification, sensitivity analysis, and machine learning explainability; with an emphasis on providing credible, adaptive, and interpretable modeling capabilities for enhanced situational awareness in support of national security decision-making. Her primary domain area of expertise focuses on the mathematical properties of infectious disease models. As an area of professional service, she is a member of the ASME VVUQ standards committee, writing definitions for verification, validation, uncertainty quantification, and credibility for machine-learned models. She also volunteers her time for educational outreach as a mentor and head referee for the Albuquerque VEX VRC Robotics League and NM State VEX VRC Robotics Competitions.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/HDGJMJ/", "id": 43402, "guid": "e7acc9d5-30f1-5993-a953-8cabdd3a1be6", "date": "2024-07-10T17:00:00+02:00", "start": "17:00", "logo": "https://pretalx.com/media/juliacon2024/submissions/HDGJMJ/meshgraphnetsjl_logo_klPxdsj.png", "duration": "00:30", "room": "Else (1.3)", "slug": "juliacon2024-43402-meshgraphnets-jl-adaptation-of-meshgraphnets-as-neuralode", "title": "MeshGraphNets.jl - Adaptation of MeshGraphNets as NeuralODE", "subtitle": "", "track": "SciML", "type": "Talk", "language": "en", "abstract": "We introduce `MeshGraphNets.jl`, an open-source library that provides the neural network architecture of *MeshGraphNets* by Google DeepMind in the context of NeuralODEs. It supports full computation on the GPU for accelerated training and evaluation of the system and provide an interface for customizing *MeshGraphNets* for your own use case. We show that the network has an improved understanding of the underlying phenomena on a network derived from a real world hydraulic brake system.", "description": "Simulating physical systems with a spatially distributed domain, such as those encountered in fluid dynamics or structural mechanics, requires solving intricate and computationally demanding differential equations. By taking advantage of the mesh-like structure of these methods and incorporating machine learning methods in place of the equations we can significantly improve the computation time during system evaluation. This is the core concept of *MeshGraphNets* and will be discussed in the first part of the talk.\r\n\r\nThe second part will continue with the specific details of the design choices of the Julia packages `MeshGraphNets.jl` and its underlying core package `GraphNetCore.jl`. Designing *MeshGraphNets* as a NeuralODE allows you to incorporate the full suite of ODE solvers from `DifferentialEquations.jl` into both the training and the evaluation process. For example, you can easily switch from a derivative-based collocation training to a solver training to enable the network to more accurately learn the actual physics behind the modeled system. In order to efficiently train the NeuralODE we designed our packages with full compatibility and optimised execution on the GPU in mind.\r\n\r\nWe will conclude our talk by presenting the improvements of a NeuralODE based design in the context of an industrial application in the form of a hydraulic brake system.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "88ba5aaa-e85c-567d-aac8-8dab8f2b06dc", "id": 38979, "code": "BW9CJL", "public_name": "JulianTrommer", "avatar": "https://pretalx.com/media/avatars/profile_picture_RC0ON6F.jpg", "biography": "Research scientist @ University of Augsburg, chair for mechatronics", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/MTLQYA/", "id": 44469, "guid": "3de32838-6293-5011-9c83-a49319db1f63", "date": "2024-07-10T20:00:00+02:00", "start": "20:00", "logo": null, "duration": "00:30", "room": "Else (1.3)", "slug": "juliacon2024-44469-a-deferred-acceptance-propensity-score-package-in-julia", "title": "A Deferred Acceptance propensity score package in Julia", "subtitle": "", "track": "Posters", "type": "Poster", "language": "en", "abstract": "The deferred acceptance (DA) propensity score approach is a highly credible causal inference method due to its ability to approximate a randomized control trial (RCT) closely. However, this method is typically very complicated and computationally expensive to run, with no published package available in any programming language ecosystem. We developed a package in Julia to run the DA propensity score approach that will be easy for applied researchers in education to use and implement.", "description": "The deferred acceptance (DA) propensity score approach is a highly credible causal inference method often used in education research due to its ability to approximate a randomized control trial (RCT) closely. However, this method is typically very complicated and computationally expensive to run due to the requirement of specialized knowledge about intricate school assignment systems with a lot of iterative steps and the need for a large number of simulations, i.e., assignment runs. No published package is available in any programming language ecosystem that implements and runs the method, although ad hoc code exists in SAS and R. We developed a package in Julia to run the DA propensity score approach that will be easy for applied researchers in education and impact evaluation research to use and implement and that automatically parallelizes tasks. We plan to benchmark our package against the previous ad hoc implementations to assess package performance. Future work will include incorporating other causal inference methods for a more complete package that allows users to test their own causal inference methods against the DA propensity score approach, all with an eye towards reducing the computational burden of these tests while providing credible causal inference.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "e3b723c9-388f-512a-8787-2007bbda4f19", "id": 40002, "code": "NTCXV9", "public_name": "August Guang", "avatar": null, "biography": "August obtained their PhD from Brown in 2017 in Applied Mathematics and Computational Biology. Outside of work they organize against criminalization and the police state. Both their research practices and organizing work are guided by the belief that crisis and uncertainty are a gift and that we must be involved in shaping how change happens.", "answers": []}, {"guid": "705a666a-833a-5e8e-bee8-b97f26fca707", "id": 44288, "code": "H7KBVP", "public_name": "Jordan Lawson", "avatar": null, "biography": "Research Software Engineer at Brown University with experience in statistical modeling, software development, and DevOps.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/RJEPZY/", "id": 44363, "guid": "864e8574-425a-584d-97c8-22b22276099d", "date": "2024-07-10T20:30:00+02:00", "start": "20:30", "logo": null, "duration": "00:30", "room": "Else (1.3)", "slug": "juliacon2024-44363-julia-meets-field-programmable-gate-array-fpga-", "title": "Julia meets Field Programmable Gate Array (FPGA)", "subtitle": "", "track": "Posters", "type": "Poster", "language": "en", "abstract": "Julia has achieved strong result in heterogeneous compilation such as GPU or IPU. But little work has been carried out for Field Programmable Gate Array (FPGA). Although Julia language with its type system, readability and libraries is an excellent fit for High-Level Synthesis (HLS). The idea is to used Julia IR as a MLIR frontend, develop a new toolchain which can generate representation usable by MLIR HLS tools such as ScaleHLS.", "description": "Julia has achieved excellent results in the field of heterogeneous compilation, attributed to the flexibility of the compilation toolchain. This is further enhanced by the extension of the compiler through GPUCompiler.jl, enabling smooth targeting of GPU or IPU. Each target defines a new LLVM pipeline tailored to its specific requirements, generating specialized LLVM Intermediate Representation (IR). Field Programmable Gate Arrays (FPGA) are other interesting targets [1], as they focus on energy efficiency and high-throughput contexts.\r\n\r\nProgramming FPGAs traditionally involves using Hardware Description Language (HDL), but this approach is suboptimal due to its reliance on solid hardware knowledge and unwieldy algorithm development. High-Level Synthesis (HLS) has been introduced to address these limitations. State-of-the-art HLS tools, such as Vitis from AMD, employ a Design-Specific Language (DSL) based on C, which is then transformed into LLVM IR using a custom Clang frontend. The LLVM IR contains hardware semantics in the form of various annotations, utilized and transformed by the HLS backend to generate HDL code, such as Verilog or VHDL.\r\n\r\nWhile the approach leveraging the Vitis design suite is interesting, it has limitations, particularly due to the closed-source nature of the LLVM IR usage, making integration with new frontends cumbersome. An alternative method employed by many HLS users avoids the direct use of DSL or LLVM IR; instead, they introduce a new toolchain using Multi-Layer IR (MLIR) [2]. MLIR generalizes the concept of IR and its manipulation, introducing new IRs (referred to as dialects in MLIR terminology), which are analyzed and transformed to fit an IR sent to HLS tools.\r\n\r\nIn a manner similar to the Brutus prototype tool, we propose using Julia IR as an MLIR frontend. The key distinction with Brutus lies in the application of MLIR not to enhance backend compilation but to integrate with state-of-the-art HLS MLIR toolchains such as ScaleHLS [3]. Notably, we aim to leverage Julia IR singularities, such as typed IR or compactness, and incorporate these semantics into MLIR. To achieve this goal, several mandatory changes to the Julia compiler are necessary, including modifying the inliner policy and developing a new toolchain using MLIR with an original dialect. The toolchain for translating Julia IR to MLIR standard dialects is actively being developed, and the compilation stack will be open-sourced and proposed as a tool to the community. This enables the possibility to write Julia application that will run on specific FPGA target.\r\n\r\nReferences:\r\n\r\n[1] B. Biggs, I. McInerney, E. C. Kerrigan, and G. A. Constantinides, High-level Synthesis using the Julia\r\nLanguage, Feb. 2022. arXiv: 2201.11522 [cs].\r\n[2] C. Lattner, M. Amini, U. Bondhugula, et al., MLIR: A Compiler Infrastructure for the End of Moore\u2019s\r\nLaw, Feb. 2020. arXiv: 2002.11054 [cs].\r\n[3] H. Ye, C. Hao, J. Cheng, et al., ScaleHLS: A New Scalable High-Level Synthesis Framework on Multi-Level\r\nIntermediate Representation, Dec. 2021. arXiv: 2107.11673 [cs].", "recording_license": "", "do_not_record": false, "persons": [{"guid": "6f8369a4-5f7d-5845-8f5d-0aadfa9cebf1", "id": 39204, "code": "ZMNTFE", "public_name": "Ga\u00ebtan LOUNES", "avatar": null, "biography": "2nd year PhD student at IRISA (Institute for Research in Computer Science and Random Systems) interested in compilers and FPGA.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/RMCVND/", "id": 44422, "guid": "9a18c25f-7f27-577b-bc9d-d06054a45f05", "date": "2024-07-10T21:00:00+02:00", "start": "21:00", "logo": null, "duration": "00:30", "room": "Else (1.3)", "slug": "juliacon2024-44422-heta-is-software-platform-for-large-scale-computational-biology", "title": "Heta is software platform for large-scale computational biology", "subtitle": "", "track": "Posters", "type": "Poster", "language": "en", "abstract": "The Heta Project is introduced as a versatile, open-source DSL for Systems Biology and Sytems Pharmacology and software platform including HetaSimulator.jl. It enables flexible model development and annotation, with conversion capabilities into various formats including Julia. Key features include integration with Julia's SciML for simulations and parameter estimations facilities, bridging advanced modeling with state-of-the-art simulation tools.", "description": "**Heta project** is an initiative for the development of infrastructure for modeling in pharmacology and systems biology. The project also summarises best practices and our experience in modeling of dynamical systems: systems biology, PK/PD, QSP as well as implementation of software development techniques in modeling routine.\r\n\r\nThe project is currently focused on the following areas:\r\n- The development of the unified data structures storing model parts, datasets and typical model tasks. Transformation of models and tasks to different modeling formats.\r\n- Heta language which is a domain specific programming language (DSL) for dynamic quantitative models used in pharmacology and systems biology.\r\n- The development and support of QSP/SB Open Source development by providing tools, examples and study materials.\r\n- The formulation of best practices and elaboration of workflows for model development.\r\n\r\n**HetaSimulator** is an OpenSource simulation and parameters estimation (fitting) platform for the Heta modeling language. The main purpose of the package is to establish the linkage between emerging QSP frameworks and fast computational methods (parallel simulations, automatic differentiation, etc.).", "recording_license": "", "do_not_record": false, "persons": [{"guid": "c5382290-0e86-5a2d-93d5-0d2f4f3cabdb", "id": 39976, "code": "HUBBY9", "public_name": "Evgeny Metelkin", "avatar": null, "biography": "QSP modeler", "answers": []}], "links": [], "attachments": [], "answers": []}], "Struct (1.4)": [{"url": "https://pretalx.com/juliacon2024/talk/AAHKS7/", "id": 44381, "guid": "1d4c6fe9-bdf2-5698-b0a3-d919d0009140", "date": "2024-07-10T11:30:00+02:00", "start": "11:30", "logo": "https://pretalx.com/media/juliacon2024/submissions/AAHKS7/juliageo_llm2D2H.svg", "duration": "01:00", "room": "Struct (1.4)", "slug": "juliacon2024-44381-juliageo-bof-shared-interfaces-and-plans-for-geospatial-julia", "title": "JuliaGeo BoF: shared interfaces and plans for geospatial julia", "subtitle": "", "track": "General", "type": "Birds of Feather (BoF)", "language": "en", "abstract": "The Julia ecosystem for handling geospatial data and analysis is growing and improving. This is a session for anyone interested in geo in Julia to meet package contributors and users to discuss future direction and collaboration efforts. \r\n\r\nIn this community building session we aim to:\r\n\r\n- Hear what people are doing in Julia and Geo\r\n- Develop group goals and common understanding for ecosystem coherence \r\n- Uncover gaps and rough edges in the ecosystem\r\n- Lower the barrier to getting involved", "description": "A rough program:\r\n- Introductions: what are you using Julia for, in three words\r\n- Show and tell: share your geo packages and projects that don't have their own JuliaCon talks\r\n- The good, the bad and the ugly in Julia geospatial: a constructive session of gripe-driven development\r\n- Slido poll with questions on datasets, pain points, nice things, integrations, major wishes for the ecosystem", "recording_license": "", "do_not_record": false, "persons": [{"guid": "287d3d07-679d-51f6-875a-8785369e4287", "id": 19126, "code": "RWMFJM", "public_name": "Felix Cremer", "avatar": null, "biography": "Felix Cremer received his diploma in mathematics from the University of Leipzig in 2014. In 2016 he started his PhD study on time series analysis of hypertemporal Sentinel-1 radar data.\r\nHe is interested in the use of irregular time series tools on Synthetic Aperture Radar data to derive more robust information from these data sets.\r\nHe worked on the development of deforestation mapping algorithms and on flood mapping in the amazon using Sentinel-1 data.\r\nHe currently works at the Max-Planck-Institute for Biogeochemistry on the development of the JuliaDataCubes ecosystem in the scope of the NFDI4Earth project. The JuliaDataCubes organisation provides easy to use interfaces for the use of multi dimensional raster data", "answers": []}, {"guid": "51379caf-78ba-57f6-aee8-0ccda8073f0c", "id": 3779, "code": "LVYSRF", "public_name": "Rafael Schouten", "avatar": "https://pretalx.com/media/avatars/avi_hstxXRX.JPG", "biography": "Rafael is an Ecologist at the Center for Macroecology, Climate and Evolution in Copenhagen. He works on process-based ecological models of species distributions, dispersal, threats and extinction, and contributes to a variety of geospatial, modelling and visualization packages.\r\n\r\n/~https://github.com/rafaqz", "answers": []}, {"guid": "a9b399ee-6632-5ea8-8274-6f3524d8e7d7", "id": 9652, "code": "Q33DZA", "public_name": "Maarten Pronk", "avatar": "https://pretalx.com/media/avatars/me20-crop_GfRsA77.jpg", "biography": "I'm a researcher at Deltares and an external PhD candidate in the 3dgeoinfo research group at the Delft University of Technology. I have earned a Master of Science degree in Geomatics with honors.\r\n\r\nMy research concerns elevation modelling, especially in lowlands prone to coastal flooding. I aim to combine my interests in remote sensing and software engineering for societal impact. Currently, I'm working on applying data from ICESat-2\u2014a lidar satellite\u2014on global elevation models.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/GLMKTM/", "id": 44491, "guid": "92c9b4d6-08e5-5f79-9d5c-83c985f32067", "date": "2024-07-10T14:30:00+02:00", "start": "14:30", "logo": null, "duration": "01:00", "room": "Struct (1.4)", "slug": "juliacon2024-44491-reactive-programmer-support-group", "title": "Reactive Programmer Support Group", "subtitle": "", "track": "General", "type": "Birds of Feather (BoF)", "language": "en", "abstract": "Being reactive is often considered a bad trait. Taking a reactive approach to the design of systems involving asynchronous behavior, i.a. user interaction through UIs, coordinating long-running jobs, can often be beneficial and result in clean and robust architectures.\r\n\r\nThis session aims to bring together a group of people to share approaches, experiences, challenges and wins in designing and building these types of systems in Julia.", "description": "Taking a reactive approach to the design of systems involving asynchronous behavior can often be beneficial and result in clean and robust architectures. The Julia ecosystem provides many libraries and frameworks to support building reactive systems, for instance, Observables, Pluto, ReactiveGraphs, Rocket, Signals, Stipple, just to name a few.\r\n\r\nDesigning reactive systems requires a bit of a shift in thinking due to the uncertain nature of asynchronicity, which can take a fair bit of practice, especially when moving beyond mapping simple UI elements onto data structures.\r\n\r\nThis session aims to bring together a group of people to share approaches, experiences, challenges and wins in designing and building these types of systems in Julia. Which packages they prefer for which types of tasks and why, what types of issues are common and how they are solved, etc.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "6c8827a2-10f6-5d85-b228-32a7c7fb92d3", "id": 4395, "code": "VCBWCT", "public_name": "Joris Kraak", "avatar": "https://pretalx.com/media/avatars/c0d60e9cebf22b77e94c2d2eb4386539_Daalsxb.jpg", "biography": "Joris is the technical team lead for the JuliaSim applications and product team. He has been building reactive apps in Julia and managing their respective codebases for over a decade.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/ZYLDA7/", "id": 43949, "guid": "c69fb7d2-d998-5606-8d0f-2dc8726b72da", "date": "2024-07-10T15:30:00+02:00", "start": "15:30", "logo": null, "duration": "01:00", "room": "Struct (1.4)", "slug": "juliacon2024-43949--pluto-teaching-with-pluto", "title": "\ud83c\udf88 Pluto - Teaching with Pluto", "subtitle": "", "track": "Notebooks & Graphics", "type": "Birds of Feather (BoF)", "language": "en", "abstract": "We would like to have an open discussion on \"How to use Pluto for teaching\" to discuss best didactic practise for teaching with Pluto for supervised and self-learning experience\r\nThe aim is to raise awareness for good teaching practise (design and instructions) to improve learning experience.", "description": "Open space, everyone welcome, spontaneous contributions welcome\r\n\r\nFocus on users' learning experience in different setups:\r\n1) guided in class (as homework, additional material and so on)\r\n2) self-study (stumbled over the notebook in the web - MOOC like)\r\n\r\nDiscuss some sample notebooks from a didactic point of view (like 2).\r\n\r\nDesign and instructions for good learning experience depending on following factors:\r\n- the setup (self or supervised)\r\n- the audience\r\n- expectation of passive reading or active coding\r\n\r\nAgenda:\r\n- Introduction of participants round (2 minutes each)\r\n- Frame the two learning setups (and collect feedback) and the learner's journey\r\n- Brainstorm Dos and Don's for each setup\r\n- Review two sample notebooks together\r\n- Harvest insights of good design and instructions", "recording_license": "", "do_not_record": false, "persons": [{"guid": "d14db4e2-3fd5-5059-b6e1-ec1326363324", "id": 39616, "code": "GWGT8Y", "public_name": "Gerhard Dorn", "avatar": "https://pretalx.com/media/avatars/profile_picture_DqNObDO.jpg", "biography": "Gerhard Dorn is a senior scientist at Virtual Vehicle Research GmbH in Austria with a background in mathematics and computational physics. \r\nWithin the project AI4CSM Gerhard works on LIDAR perception and the integration into the test vehicle Ford Mondeo.\r\nGerhard is an active member of the \ud83c\udf88 Pluto.jl and \u26a1 PlutoUI.jl development community and likes to organize workshops as community manager.", "answers": []}, {"guid": "e20cbc3e-f4c2-5adb-9936-1e8e960416a1", "id": 12269, "code": "PTCVCM", "public_name": "Luca Ferranti", "avatar": "https://pretalx.com/media/avatars/lucalle2_hkb2HBy.jpg", "biography": "I like Julia, teaching, teaching Julia and teaching in Julia.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/SQWJ7G/", "id": 44367, "guid": "09201d3d-a37b-515b-aa7a-0592dfc58bdf", "date": "2024-07-10T16:30:00+02:00", "start": "16:30", "logo": null, "duration": "01:00", "room": "Struct (1.4)", "slug": "juliacon2024-44367-discussing-gender-diversity-in-the-julia-community", "title": "Discussing (Gender) Diversity in the Julia Community", "subtitle": "", "track": "Community", "type": "Birds of Feather (BoF)", "language": "en", "abstract": "Julia Gender Inclusive is an initiative that aims to provide a supportive space for all gender minorities in the Julia community. In this BoF session we hope to discuss the status of (gender) diversity in the community, plan initiatives, and engage supportive allies. While we focus on gender diversity, we would like to open the discussion up to all facets of diversity to connect organizers of different diversity initiatives and start new initiatives. We invite everyone to get involved!", "description": "The objective of this BoF is to create space for discussion and community building among people who feel their gender is underrepresented within the Julia community, as well as allies who want to support us. We aim to create a safe and fruitful discussion about gender diversity, increase awareness of our current initiatives such as the Julia Gender Inclusive Community Hours, receive input on new actions we can take as Julia Gender Inclusive, and reach out to others who want to get involved.\r\nThis year, we want to further enhance the contact between different diversity initiatives in the community and open the discussion up to different aspects of diversity.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "902ff6e4-61cb-59c8-8b2a-9ffbf8c1b83c", "id": 39949, "code": "D8DBBG", "public_name": "Julia Gender Inclusive", "avatar": null, "biography": "Julia Gender Inclusive is an initiative to promote gender diversity and inclusion within the wider Julia community. We aim to do this through a combination of community building, targeted outreach, education, mentorship, and mutual support, in the hopes of addressing potential causes of gender under-representation.\r\n\r\nWe welcome anyone who sees their gender as under-represented within the Julia community, including women, non-binary people, trans people of all genders, and people exploring or questioning their gender. Because gender is multifaceted, we are intentionally being general about what gender under-representation means.", "answers": []}, {"guid": "e0082c95-2d83-50fc-8c5e-4f0e6dea5024", "id": 16723, "code": "U3WPAA", "public_name": "Let\u00edcia Madureira", "avatar": "https://pretalx.com/media/avatars/WhatsApp_Image_2022-01-31_at_10.04.41_HlDmmpo.jpeg", "biography": "Leticia Madureira is a PhD student in theoretical chemistry at Carnegie Mellon University. Her interests go from materials applications of molecular environments, focusing on studying conjugated systems and their quantum coherence, but also developing methods on the realm of electronic structure methods. She has been using Julia for 4 years and her goal is to answer fundamental scientific equations with high performance software engineering.", "answers": []}, {"guid": "4325bbda-0b4b-5242-ab62-b1b52e125a1d", "id": 37721, "code": "TVLJ8S", "public_name": "Skylar Gering", "avatar": "https://pretalx.com/media/avatars/sky_github_nNem9wh.jpg", "biography": "I am a research software engineer working on both sea ice modeling and computational geometry in Julia.", "answers": []}, {"guid": "8a867968-566c-565c-811d-361b8da83bb0", "id": 39989, "code": "9EVPUA", "public_name": "Kim Louisa Auth", "avatar": null, "biography": null, "answers": []}, {"guid": "629d55cc-a3c6-59ce-9b36-bc9427c9d8dd", "id": 10333, "code": "CFLQJP", "public_name": "Xuan (Tan Zhi Xuan)", "avatar": "https://pretalx.com/media/avatars/picrew3_6CrDTRv.png", "biography": "PhD student in the MIT Probabilistic Computing Project and Computational Cognitive Science lab.", "answers": []}], "links": [], "attachments": [], "answers": []}], "Method (1.5)": [{"url": "https://pretalx.com/juliacon2024/talk/P8E8D9/", "id": 43430, "guid": "ca8b3b7f-6484-50d1-b6c8-ed99f5fb9fa7", "date": "2024-07-10T11:00:00+02:00", "start": "11:00", "logo": null, "duration": "00:10", "room": "Method (1.5)", "slug": "juliacon2024-43430-juliahub-s-askai-enhancing-chatgpt-with-julia-specific-context", "title": "JuliaHub's AskAI: Enhancing ChatGPT with julia-specific context", "subtitle": "", "track": "AI/ML/AD", "type": "Lightning talk", "language": "en", "abstract": "How can you teach ChatGPT to write well informed Julia code? In this talk we\u2019ll address the basic retrieval augmented generation (RAG) ideas that back JuliaHub\u2019s AskAI feature; one of the most popular code generation tools for Julia.", "description": "JuliaHub\u2019s AskAI feature has been generating good Julia code since the Spring of 2023. To power it up, we are processing a big archive of julia knowledge, and we are combing through it, to find the most relevant knowledge regarding the user\u2019s query. In this talk we will discuss issues with Julia documentation maintenance, the splitting of this knowledge into chunks the retrieval and the context engineering required to achieve improved performance over plain ChatGPT. We\u2019ll show that our methods improve ChatGPT (3.5) at least over two dimensions:\r\n \r\n- serving the latest relevant information and \r\n- reducing the hallucinations that make ChatGPT think that Julia is just python.jl\r\n\r\nFinally we\u2019ll discuss limitations and next steps in Julia code generation, along with potential integrations into IDEs (Pluto, Jupyter)", "recording_license": "", "do_not_record": false, "persons": [{"guid": "66d059de-cc3c-5ea4-9d67-53845b2da6bf", "id": 39200, "code": "NDRZYU", "public_name": "Panagiotis Georgakopoulos", "avatar": "https://pretalx.com/media/avatars/panagiotisface_Y5lZTqB.png", "biography": "Misc at Pluto.jl, Software engineering JuliaHub (Ask AI, Pluto integrations, Julia Web applications & JavaScript). In the past, I've been a software engineer, a business analyst, a consultant, a data entry intern, a waiter and a sailor. Very concerned about climate change, trying to do something about it (algae bioreactors in the making).", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/R3HRGW/", "id": 43562, "guid": "65b70f95-994e-53f9-925b-5ae00d7dc589", "date": "2024-07-10T11:10:00+02:00", "start": "11:10", "logo": null, "duration": "00:10", "room": "Method (1.5)", "slug": "juliacon2024-43562-piecewiseinference-jl-inverse-modelling-for-complex-dynamics", "title": "PiecewiseInference.jl: inverse modelling for complex dynamics", "subtitle": "", "track": "General", "type": "Lightning talk", "language": "en", "abstract": "PiecewiseInference.jl is a novel inverse modelling framework specifically designed for the inference of parameters in large, nonlinear differential equation using time series data. It is based on a segmentation method together with minibatching. We briefly discuss its building blocks and demonstrate its performance with large ecosystem models. PiecewiseInference.jl is a user-friendly package that significantly simplifies the inference of parameters in complex dynamical models.", "description": "The inference of parameters in large, nonlinear differential equation models using time series data poses significant challenges. Bayesian methods, that infer the full posterior probability distribution of the unknown parameters, are computationally expensive and particularly prone to the curse of dimensionality. Alternatively, local-search methods based on variational optimizers are efficient but tend to converge to local minima. Here, we introduce PiecewiseInference.jl, an inverse modelling framework specifically designed for the inference of parameters in large, nonlinear differential equation using time series data. PiecewiseInference.jl improves the convergence of local-search methods by implementing a segmentation method and parameter constraints, which are used in combination with minibatching. By partitioning time-series data into shorter segments, the framework effectively regularizes the loss function, mitigating issues arising from the nonlinearities. The implementation of parameter constraints ensures that both model parameters and initial conditions remain within scientifically and numerically valid ranges, a critical aspect for the successful application of variational optimizers in inverse modeling problems.\r\nFurthermore, the use of minibatching in PiecewiseInference.jl mitigates overfitting while reducing memory pressure. We briefly discuss the building blocks of PiecewiseInference.jl and demonstrate its performance on simulated food-web dynamics of increasing complexity. PiecewiseInference.jl is a user-friendly package that significantly simplifies the inference of parameters in complex dynamical models. Its ability to integrate data into complex scientific models enables their systematic testing and continuous development, making it a valuable asset for modelers in various fields.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "33fb69f7-c076-5755-aa5d-3d5320b17f8e", "id": 18096, "code": "CEKMLK", "public_name": "Victor Boussange", "avatar": "https://pretalx.com/media/avatars/avatar_huac055f77da59689772d9b68d89f1ca44_1188801_270x270_fill_lanczos_center_3_YczsC2d.png", "biography": "I\u2019m Victor, a postdoctoral researcher in the Dynamic Macroecology Group at the Swiss Federal Institute for Forest, Snow & Landscape (WSL), Switzerland. My work is centered on developing innovative models and methods to better understand and forecast the dynamics of ecosystems and their response to disruptions. My focus lies at the interface between process-based modelling and machine learning. I am specifically interested in leveraging the extrapolation ability of mechanistic models with the flexibility of state-of-the-art data driven techniques.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/E7KFJX/", "id": 43370, "guid": "06873c8e-994c-5ae8-8b6a-6ae27a0c807e", "date": "2024-07-10T11:20:00+02:00", "start": "11:20", "logo": null, "duration": "00:10", "room": "Method (1.5)", "slug": "juliacon2024-43370-differentiable-point-cloud-rasterisation", "title": "Differentiable point cloud rasterisation", "subtitle": "", "track": "General", "type": "Lightning talk", "language": "en", "abstract": "We present the package DiffPointRasterisation.jl, which aims to provide a differentiable rasterization pipeline for point cloud data.\r\nThe focus of the package is on rasterizing volumetric 3D point cloud data either to 3D voxel grids or to 2-dimensional (raster) images.\r\nThis enables gradient-based 3D reconstruction algorithms for e.g. electron tomography.", "description": "Differentiable rendering is concerned with making the 3D graphics pipeline differentiable.\r\nThe focus of the package DiffPointRasterisation.jl is on rasterizing volumetric 3D point cloud data either to 3D voxel grids or to 2-dimensional (raster) images.\r\n\r\nThe package provides fast implementations for the forward- (rendering) and backward- (gradient calculation) process both on CPU and on GPU (via CUDA.jl).\r\nGradients/pullbacks are provided via explicit functions for fast allocation-free calculations, but are also integrated into the ChainRules.jl ecosystem for automatic differentiation.\r\n\r\nWe plan to give a quick overview of the differentiable rasterization process, followed by a demo using a toy example to demonstrate the package's capabilities. \r\nWe conclude by how we intend to use DiffPointRasterisation.jl in the tomographic reconstruction from cryo-electron microscopy data.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "16561207-7682-5411-aa2f-b878a414924c", "id": 39178, "code": "RCTUVD", "public_name": "Wolfhart Feldmeier", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/PFAA8M/", "id": 43486, "guid": "3f11ba8c-f87f-59c3-bc62-b4434d8c746a", "date": "2024-07-10T11:30:00+02:00", "start": "11:30", "logo": null, "duration": "00:30", "room": "Method (1.5)", "slug": "juliacon2024-43486-maxentropygraphs-jl-random-graphs-with-juliagraphs", "title": "MaxEntropyGraphs.jl: Random Graphs with JuliaGraphs", "subtitle": "", "track": "Graphs", "type": "Talk", "language": "en", "abstract": "MaxEntropyGraphs.jl introduces robust graph randomization to Julia using maximum entropy models. It enables the generation of unbiased null models from real networks for hypothesis testing. The package is completely integrated with JuliaGraphs ecosystem and enables researchers to generate random graphs that preserve specific properties, facilitates hypothesis testing and the exploration of network metrics, making it a valuable tool for network scientists.", "description": "Network analysis is a powerful tool for understanding the structure and function of complex systems, such as social networks, ecological networks, and biological networks. By examining the connections and interactions between nodes in a network, researchers can gain insights into the underlying processes and patterns that govern these systems. These real-world systems or networks can be represented by the mathematical object that is a graph.\r\n\r\nGraph randomization is a method commonly used in network analysis to establish null hypotheses and compare an observed graph against random expectations within an ensemble of graphs. For example, graph randomization can be used to investigate whether a particular network exhibits a higher level of clustering than expected by chance, which can provide insights into the presence of community structures within the network. There are many ways to do graph randomization, but maximum entropy null models are specifically useful due to their unbiased parameter estimation, incorporation of constraints, flexibility, statistical robustness, and mathematical simplicity.\r\n\r\nThe MaxEntropyGraphs.jl package can be used to compute the likelihood-maximizing parameters for different null models for a variety of graphs (directed, undirected, bipartite, weighted etc.). It enables users to sample graphs from the ensemble and to compute the expected value of a graph metric directly from the ensemble.\r\n\r\nThe package uses the JuliaGraphs ecosystems for everything graph related, makes us of well-established Julia optimization tools (Optimization.jl) and numerical solvers (NLsolve.jl) to obtain the graph\u2019s likelihood maximizing parameters; leverages the JuliaDiff ecosystem for automatic differentiation and groups the different null models in a single framework.\r\n\r\nCurrently, there are no existing Julia packages offering this functionality. In Python, there are some packages that provide similar functionality (NEMtropy, BiCM, etc.), but these do not always integrate directly with an established Python ecosystem for graphs, use a custom implementation for the numerical solver(s), and do not offer the possibility of using automatic differentiation. Performance testing has shown that the Julia implementation is typically faster than the equivalent Python packages for networks of different sizes and densities. The way forward for this package is to include additional null models that might be relevant for more advanced concepts such as higher-order or multilayer graphs.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "34434545-0dfe-525e-9087-d8fbd24133d7", "id": 39274, "code": "RSHFQB", "public_name": "Bart De Clerck", "avatar": null, "biography": "Bart DE CLERCK has a background in engineering and works as a teaching assistant within the SMAC (Simulation Modelling and Analysis of Complex systems) unit of the Department of Mathematics at the Royal Military Academy (RMA). He\u2019s also pursuing a joint PhD between the RMA and Ghent University (Complex Systems Institute). His main research areas are network science and AI applications for intelligence.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/NS3NVT/", "id": 44451, "guid": "7a4a7de7-04f4-5e9b-a9c5-afe7bbb934d9", "date": "2024-07-10T12:00:00+02:00", "start": "12:00", "logo": null, "duration": "00:30", "room": "Method (1.5)", "slug": "juliacon2024-44451-what-s-new-in-graphblas-jl", "title": "What's new in GraphBLAS.jl", "subtitle": "", "track": "Graphs", "type": "Talk", "language": "en", "abstract": "GraphBLAS.jl is a sparse linear algebra package which provides both conformant sparse AbstractArrays and a novel array type for writing graph kernels. Since the last talk on this package a lot has changed: A cross language JIT between Julia and C, complete AbstractArray support, compiler-based backends including GPU support, and Julia-level kernel fusion are all recent additions to the package.", "description": "Initially named SuiteSparseGraphBLAS.jl a few years ago, the current edition of GraphBLAS.jl provides among the fastest sparse linear algebra libraries in any language today. At it\u2019s core is the SuiteSparse:GraphBLAS C library which provides hand-tuned kernels for CPU execution of sparse and graph algorithms. However, GraphBLAS.jl now uses these kernels as one of several directed acyclic graph (DAG) execution strategies which includes library functions from CUDA / AMDGPU, and runtime compilation from multiple compilers like Finch.jl. \r\n\r\nThese new execution backends are supported by three separate array types, `EagerGBMatrix`, `LazyGBMatrix` and `GBMatrix`. `EagerGBMatrix` executes function calls in a blocking fashion, and performs minimal laziness or fusion (with the exception of lazy `setindex!`). The `LazyGBMatrix` performs no computation until a function is called to explicitly materialize the array, and any `LazyGBMatrix` which is not explicitly materialized may never be computed. However this does not conform to the `AbstractArray` interface, so the final type `GBMatrix` performs this laziness only when it is safe to do so. \r\n\r\nWhen laziness is enabled, or the lazy DAG is explicitly constructed, the GraphBLAS.jl runtime will first attempt to dispatch to hand-tuned kernels such as those found in CUDA/AMDGPU or SuiteSparse:GraphBLAS. SuiteSparse:GraphBLAS in particular provides a large number of function skeletons which are highly fusible. For instance, a matrix multiplication preceded and followed by multiple elementwise maps can be fused into a single function call. Using a novel Julia + C -> LLVM cross language JIT built for GraphBLAS.jl the runtime generates code using LTO which is as fast as C native implementations of the same functions. This functionality is used to implement the lazy complex adjoint, by fusing the conjugation into the matrix multiplication, as well as other common AbstractArray functionality. A similar library of function skeletons is implemented in Julia for various important kernels like Sampled-Dense-Dense-Matrix-Multiplication.\r\n\r\nOther fused expressions or arrays are not able to be dispatched to these hand-tuned libraries. This may occur for more complex expressions, or for array types which are unsupported by library backends. A particularly common case is when the fill value for a sparse array is not equivalent to the identity and/or annihnilator of the function. For these cases a compiler is used to generate a new kernel, which is cached to avoid expensive recompilation. Several compiler backends are supported including Finch.jl, and a modified version of TACO. In the future this may be expanded to more compilers including MLIR Sparsifier, the Sparse Polyhedral Framework, and Etch. \r\n\r\nIn this talk we will briefly discuss the structure of DAG execution, before diving into performance numbers for a selection of common use cases and algorithms.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "98d46e9c-716b-58c3-a374-3513aa986f7c", "id": 28355, "code": "TMKBTN", "public_name": "Raye Kimmerer", "avatar": null, "biography": "Currently I am an SM at the MIT JuliaLab, where I focus on sparse libraries and compilers.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/HTCDFD/", "id": 43568, "guid": "e372bcdb-fa7c-5958-81b4-6b26d3df72ae", "date": "2024-07-10T14:00:00+02:00", "start": "14:00", "logo": "https://pretalx.com/media/juliacon2024/submissions/HTCDFD/logo_CASno7I.svg", "duration": "00:30", "room": "Method (1.5)", "slug": "juliacon2024-43568-probabilistic-inference-using-contraction-of-tensor-networks", "title": "Probabilistic inference using contraction of tensor networks", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "TensorInference, a package for exact probabilistic inference in discrete graphical models, capitalizes on recent tensor network advancements. Its tensor-based engine features optimized contraction ordering methods, an aspect vital to computational performance. Additionally, it incorporates optimized BLAS routines and GPU technology for enhanced efficiency. In a comparative evaluation with similar libraries, TensorInference demonstrates superior scalability for models of increasing complexity.", "description": "GitHub repo: /~https://github.com/TensorBFS/TensorInference.jl\r\nJOSS publication: https://joss.theoj.org/papers/10.21105/joss.05700\r\n\r\nReasoning under uncertainty is a key challenge in fields like AI, medical diagnosis, computer vision, and natural language processing. Probabilistic graphical models (PGMs) are crucial for this, representing complex systems' joint probability distributions efficiently.\r\n\r\nDespite PGMs' utility, probabilistic inference remains a complex task due to the high-dimensional combinatorial optimization involved. To address this, we introduce TensorInference.jl, a Julia package that combines PGMs with tensor network computational power to improve probabilistic inference performance for complex models.\r\n\r\nProbabilistic inference calculates probabilities from observed data using probability theory axioms. Inference methods are categorized into exact and approximate. Exact methods face NP-hard computational challenges related to the model's treewidth. In contrast, approximate methods like Markov chain Monte Carlo and variational inference, implemented in packages like Stan and PyMC3, offer scalability but lack formal accuracy guarantees. Thus, exact methods are resurging for their accuracy potential.\r\n\r\nTensorInference.jl utilizes recent tensor network advances to provide exact high-performance solutions for inference problems. It enables tasks like calculating partition functions, computing marginal probabilities, finding likely variable assignments, and drawing posterior samples.\r\n\r\nTensor networks, like PGMs, are adept at representing complex system states. Computational efficiency in tensor networks hinges on the contraction sequence; hence, optimizing this order is vital.\r\n\r\nTensorInference.jl enhances computational tasks using differentiable programming, supports generic element types, and allows for hyper-optimized contraction order settings. It includes advanced contraction methods including a local search-based method, denoted as TreeSA, two methods based on min-cut algorithms, denoted as SABipartite and KaHyParBipartite, as well as a greedy algorithm, denoted as GreedyMethod. Additionally, it incorporates BLAS routines and GPU technology for improved performance.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "6fd7d193-e129-5f8a-85d1-ba4a705dab8e", "id": 17892, "code": "GFMR8R", "public_name": "Martin Roa-Villescas", "avatar": "https://pretalx.com/media/avatars/tue-canvas_HedGsYS.jpg", "biography": "Martin Roa-Villescas earned his B.Sc. degree in Electronic Engineering from the National University of Colombia (UNAL) in Manizales, Colombia, in 2010. He received his M.Sc. degree in Embedded Systems from Eindhoven University of Technology (TU/e) in Eindhoven, The Netherlands, in 2013. Currently, he is pursuing a Ph.D. degree in Bayesian Machine Learning at TU/e. Between 2013 and 2018, he served as an embedded software designer at Philips Research in Eindhoven, The Netherlands. His research interests encompass probabilistic graphical models, open-source software, and robotics.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/DKBFZH/", "id": 43500, "guid": "84257e81-e992-58ce-a9a5-b6c2580ea8f2", "date": "2024-07-10T14:30:00+02:00", "start": "14:30", "logo": null, "duration": "00:30", "room": "Method (1.5)", "slug": "juliacon2024-43500-loresio-jl-local-reduction-for-semi-infinite-optimization", "title": "LoReSIO.jl: Local Reduction for Semi-Infinite Optimization", "subtitle": "", "track": "Optimization", "type": "Talk", "language": "en", "abstract": "LoReSIO.jl is a package that implements novel optimization techniques to obtain local solutions \r\n to nonlinear and non-convex semi-infinite optimization programs (i.e. problems with finite variables but an infinite number of constraints.) The techniques developed are useful in solving a variety of problems including robust control and min-max problems. This talk will cover the basic theory behind the implementation, detail the Julia implementation, and provide examples on how to use LoReSIO.jl.", "description": "LoReSIO.jl builds on JuMP to allow users to define a wide range of semi-infinite optimization programs (SIPs) which it then solves through local reduction, replacing the infinite-dimensional constraints by an optimally chosen finite scenario set. The implemented procedure is therefore split into a number of lower level problems, which optimize for each of the scenarios considered, and a high level problem, which minimizes the original SIP under the obtained scenario set. \r\n\r\nThis local reduction method has several numerical benefits compared to other methods typically used for addressing SIPs. LoReSIO.jl brings notable improvements in both speed and memory usage compared to directly implementing global solution methods. Additionally, when compared with methods using scenario trees, it provides guarantees on the robustness of the solution that are not otherwise achievable, while also avoiding the issue of a rapidly increasing number of scenarios for higher-dimensional problems.\r\n\r\nOur implementation allows the user to employ most JuMP-supported solvers, enabling the use of dedicated linear or quadratic solvers for simpler problems, or the use of more general nonlinear solvers for more complex problems. For non-convex examples, the user can also choose between local solvers, which obtain feasible but not necessarily globally optimal solutions through multi-start methods, and global solvers, which find the real optimal solution at the expense of higher computational costs. \r\n\r\nWe demonstrate how to quickly define SIPs within LoReSIO.jl and give examples on discrete-time robust optimal control which showcase the range of problems that can be tackled and the numerical speedups that can be obtained. \r\n\r\nLoReSIO.jl is the first known public implementation of a local reduction algorithm for solving SIPs.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "92644feb-812c-5f42-b39c-7a374924e253", "id": 39219, "code": "CC7LS8", "public_name": "Jad Wehbeh", "avatar": "https://pretalx.com/media/avatars/1000002052_5shRlux.jpg", "biography": "Jad Wehbeh is a PhD candidate with the Control and Power group at Imperial College London, working under Prof. Eric Kerrigan. His research interests include robust and optimal control, optimization, and dynamical systems.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/R7MV7U/", "id": 43403, "guid": "7365bb32-9550-53f9-abdf-c315e9519938", "date": "2024-07-10T15:00:00+02:00", "start": "15:00", "logo": null, "duration": "00:30", "room": "Method (1.5)", "slug": "juliacon2024-43403-a-retrospect-on-julia-web-services-http-performance-and-memory", "title": "A retrospect on Julia web services: HTTP, performance and memory", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "A year ago we demoed a Julia-based web application to 50 concurrent users - it failed catastrophically. We launched a team-wide effort to find the root cause of it. Was it Julia or was it our code? Turns out, it was both.", "description": "Julia based web services are nothing new, but running and scaling them in production was surely going to cause us some issues. After 6 months of investigation and fixes we\u2019re ready to share results and the knowledge acquired. In this talk we\u2019re going to discuss:\r\n\r\n1. Tools & Observability primitives to identify bottlenecks and root causes\r\n2. Findings and mitigations for the issues that included:\r\n 1. Blocking/sync code paths\r\n 2. Memory Leaks/GC performance\r\n 3. HTTPS\r\n 4. Common performance pitfalls\r\n 5. Database performance (connection pooling & non-blocking approach)\r\n3. HTTP.jl performance analysis & pitfalls [1]\r\n4. How to structure HTTP services with performance in mind\r\n5. Beyond HTTP.jl [2]\r\n\r\n[1] https://discourse.julialang.org/t/julia-can-be-better-at-doing-web-a-benchmark/103300\r\n[2] /~https://github.com/nginx/unit, /~https://github.com/JuliaWeb/HTTP2.jl and other up & coming approaches", "recording_license": "", "do_not_record": false, "persons": [{"guid": "a3553b34-99d5-5c2c-be10-15f162ba1567", "id": 18494, "code": "HRXMAH", "public_name": "Krystian Guli\u0144ski", "avatar": null, "biography": null, "answers": []}, {"guid": "66d059de-cc3c-5ea4-9d67-53845b2da6bf", "id": 39200, "code": "NDRZYU", "public_name": "Panagiotis Georgakopoulos", "avatar": "https://pretalx.com/media/avatars/panagiotisface_Y5lZTqB.png", "biography": "Misc at Pluto.jl, Software engineering JuliaHub (Ask AI, Pluto integrations, Julia Web applications & JavaScript). In the past, I've been a software engineer, a business analyst, a consultant, a data entry intern, a waiter and a sailor. Very concerned about climate change, trying to do something about it (algae bioreactors in the making).", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/FVRB7X/", "id": 43193, "guid": "74e159ae-20ec-5f57-a676-7229ba80fb34", "date": "2024-07-10T15:30:00+02:00", "start": "15:30", "logo": null, "duration": "00:30", "room": "Method (1.5)", "slug": "juliacon2024-43193-openapi-jl-for-easy-http-apis", "title": "OpenAPI.jl for easy HTTP APIs", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "The OpenAPI Specification is a machine-readable interface definition language for HTTP APIs. The Julia package OpenAPI.jl along with Julia code generator plugins to OpenAPI Generator help use OpenAPI in Julia projects. This talk will focus on giving a broad overview of OpenAPI and will demonstrate end-to-end examples of using it in Julia - begin with a specification file, generate both server and client side code, generate docs, publish, and use a service.", "description": "OpenAPI is a popular specification language for HTTP APIs. Many popular HTTP services publish specifications for their APIs in the OpenAPI format. It is useful in defining, versioning, and managing APIs for applications architected with HTTP based services. The Julia package OpenAPI.jl, along with its corresponding plugin to the `openapi-generator` project provides a way to leverage that in Julia applications.\r\n\r\nThis talk will aim to give a quick introduction of OpenAPI, and demonstrate how to use the OpenAPI.jl package in Julia. It would demonstrate how to generate a Julia client quickly to consume a third party service that has published an OpenAPI specification, which is probably a common need. It would also walk through the complete process of defining a spec and generating both server and client side code in Julia.\r\n\r\nDuring the talk, at various points, we shall touch upon some internals of the package and code generator, and also some opportunities for improvements.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "b106606d-85d9-5544-a4b3-01cefbc2a8e4", "id": 33131, "code": "GUFZXJ", "public_name": "Tanmay Mohapatra", "avatar": "https://pretalx.com/media/avatars/tan_fb2_4Tprckp.jpg", "biography": "Author and contributor of various packages across the Julia ecosystem. Mostly involved with packages in JuliaWeb, JuliaIO, JuliaParallel and JuliaDatabase orgs. Currently working with JuliaHub Inc., focussing on the JuliaHub platform and cluster management pieces.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/PSEQNH/", "id": 39350, "guid": "3fbee86f-5344-5501-9cb7-68dbb31ac9b0", "date": "2024-07-10T16:00:00+02:00", "start": "16:00", "logo": null, "duration": "00:30", "room": "Method (1.5)", "slug": "juliacon2024-39350-curling-with-julia-a-brief-overview-of-curlhttp-jl", "title": "Curling with Julia: A brief overview of CurlHTTP.jl", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "We have a Julia application that communicates with other services over REST APIs. These services use mutual TLS for authentication, which in turn requires the use of client side TLS certificates. We found that LibCURL was the best way to do HTTPS with client certificates, but with a very C like interface, it was hard for Julia developers to use.\r\n\r\nThis led us to build CurlHTTP, which is a very Julia like interface for doing HTTP(S) with LibCURL.", "description": "LibCURL.jl and HTTP.jl are the two primary ways to write HTTP clients in Julia. They both have their pros and cons.\r\n\r\n##### HTTP.jl\r\nWhile HTTP.jl has a very easy to use interface to access the majority of features, including cookie handling and streaming, it suddenly becomes very complicated when you try to use TLS client certificates. HTTP.jl also doesn't have the ability to do multiple downloads in parallel on a single execution thread.\r\n\r\n##### LibCURL.jl\r\nLibCURL makes it very easy to do mutual TLS, supporting client and server TLS certificates with well documented APIs, and has a well documented multiple download interface, but it provides a fairly low level API, and is primarily suited to developers familiar with writing applications in C.\r\n\r\nFor our use case, we decided to build a higher level Julia wrapper around LibCURL's HTTP functionality (similar to what SMTPClient.jl does for SMTP over LibCURL), while making some of curl's more complicated features easy to use in a Julian way.\r\n\r\n##### CurlHTTP.jl\r\nThe result is `CurlHTTP.jl`, which provides a high level HTTP interface to LibCURL, supporting single and multiple downloads, mutual TLS, and data streaming.\r\n\r\n#### Talk Structure\r\nThis talk will first briefly cover the features of `CurlHTTP` and how to use it.\r\nWe will then spend a little more time going into some of the nuances and gotchas we faced while developing this library, particularly with passing Julian data types through the C interface and back to our callbacks, and with dealing with memory management in a clean way.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "189edc0f-5e9a-5971-b4db-7c8a762435df", "id": 36643, "code": "3WRLPN", "public_name": "Philip Tellis", "avatar": "https://pretalx.com/media/avatars/philiptellis-velocity-mugshot-500px_eSyDph6.jpg", "biography": "Philip Tellis is a geek who likes to make the computer do his work for him. As Principal RUM Distiller at Akamai, he analyses the impact of various design decisions on web application performance, scalability and security. He is the creator of \"boomerang\" -- a JavaScript based web performance measurement tool.\r\n\r\nIn his spare time, Philip enjoys cycling, reading, cooking and learning spoken languages.\r\n\r\nHe has been developing with Julia since version 0.2 and recently completed a large migration from Julia 0.4 to 1.6.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/ZGPPW7/", "id": 44297, "guid": "9202f73a-0e8b-5666-8c6b-b5dc79543e47", "date": "2024-07-10T16:30:00+02:00", "start": "16:30", "logo": null, "duration": "00:30", "room": "Method (1.5)", "slug": "juliacon2024-44297-editboundary-jl-a-quest-to-revive-structured-quad-meshes", "title": "EditBoundary.jl - a quest to revive structured quad meshes", "subtitle": "", "track": "Math(s)", "type": "Talk", "language": "en", "abstract": "We published a paper to help Geospatial data scientists when dealing with large noisy contours like electoral maps, water bodies or digital contours. We developed EditBoundary.jl, a Julia native semi-manual technique to reduce noise and points while respecting fidelity with 2 new algorithms.\r\n\r\nWe are excited to apply this method to bring structured quad meshes back into the mainstream - they deserve better!", "description": "In some problems of cartography and hydrology the contours of water bodies and coastlines are represented by polygonal curves with a high level of detail and thus require a large number of points. The visualization and processing of these contours may have an enormous computing demand on Geographic Information Systems due to such data scales; therefore shape preserving contours with fewer points are needed to deal with these issues. Our overarching research project, UNAMALLA, relies on EditBoundary.jl to carry out this task.\r\n\r\nWe developed algorithms in Julia for such polygonal approximation. In our experiments, they handle 90% point elimination adequately, and at interactive speeds, even for highly detailed and noisy polygons.\r\n\r\nThis work will become part of Meshes.jl and the GeoStats.jl ecosystem for the benefit of all, and is 100% written in Julia.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "1f460c05-7e86-53a2-b526-fdde637cd139", "id": 1182, "code": "JE89PF", "public_name": "Miguel Raz Guzm\u00e1n Macedo", "avatar": "https://pretalx.com/media/avatars/d99ee1f43735c47968810bad35938825_c4q16DR.jpg", "biography": "Julia. Rust. Wannabe time bandit.", "answers": []}, {"guid": "9555729b-adc3-5dfc-95cb-c4302a557e64", "id": 18408, "code": "JZR8RZ", "public_name": "Ivan M\u00e9ndez", "avatar": "https://pretalx.com/media/avatars/ivan_bzCRr8b.jpg", "biography": "Mexican mathematician interested in Julia and Geometry Processing", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/J39XGJ/", "id": 44076, "guid": "2eceae5a-f7c1-5479-b3b3-724114b5fbba", "date": "2024-07-10T17:00:00+02:00", "start": "17:00", "logo": null, "duration": "00:30", "room": "Method (1.5)", "slug": "juliacon2024-44076-improving-the-life-cycle-of-quantum-algorithm-development", "title": "Improving the life-cycle of quantum algorithm development", "subtitle": "", "track": "Physics & Quantum Chemistry", "type": "Talk", "language": "en", "abstract": "In this talk we showcase the advancements of the low-level implementation of ITensors. These advancements seek to tighten the gap between rapid algorithmic development and efficient exascale implementations. Advancements were attained through the generic redevelopment of the backend NDTensors module. We showcase our work via acceleration of the DMRG optimization of the one- and two-dimensional model Hamiltonian problems with controllable accuracy using GPU accelerators.", "description": "As the accessibility to advanced computational resources, such as CPU, GPU, and QPU, becomes common to researchers across theoretical and computational disciplines, it is more important than ever to construct robust and generic software frameworks that can facilitate rapid algorithmic development on such resources. One of the biggest challenges researchers have faced in algorithmic development is the complexity of exascale and heterogeneous computer architectures. Some challenges are quite complex, such as constructing efficient memory-distributed algorithms, while others are simple yet cumbersome, such as the syntactic differences in vendor-developed, processor-specific languages. In our most recent efforts in the ITensors software suite, we are attempting to tackle these issues head-on using generic programming. \r\nThe goal of the ITensors package is to create a domain-specific language for tensor arithmetic and tensor algebra built from the ground up using Julia's robust features in coordination with thoughtful generic programming practices. ITensors is the meeting point between the lower-level tensor implementation and the higher-level, problem-specific algorithm development. In this talk, I will focus on the low-level implementation in the NDTensors module where we are developing generic practices to handle implementation complexities such as dense and sparse tensor arithmetic, buffered memory management, linear and multilinear algebra, GPU implementations, task-management and scheduling, and beyond. We underscore the power of our generic programming strategy by showing multiple methods for accelerating the DMRG optimization of the one- and two-dimensional Hubbard and Heisenberg models, which require only a small number of changes to existing ITensor code and can take advantage of GPU accelerators.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "bcdd989c-65d9-55f4-88f9-2a5fac8230a6", "id": 32798, "code": "PRKCZJ", "public_name": "karl pierce", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/ZWVPGG/", "id": 43249, "guid": "19596ee0-93a3-5976-a2a1-eef2ab02aa70", "date": "2024-07-10T20:00:00+02:00", "start": "20:00", "logo": "https://pretalx.com/media/juliacon2024/submissions/ZWVPGG/cutebanner_l9vFsgO.png", "duration": "00:30", "room": "Method (1.5)", "slug": "juliacon2024-43249--pluto-jl-is-scientific-computing-accessible-", "title": "\ud83c\udf88 Pluto.jl \u2013 is scientific computing accessible?", "subtitle": "", "track": "Posters", "type": "Poster", "language": "en", "abstract": "A poster about accessibility in Pluto and in scientific-computing-world. How can Pluto make scientific computing more accessible, and how can Pluto be more accessible? Also free stickers!! and you can meet the Pluto devs!", "description": "Pluto's mission statement is to *make scientific computing more accessible and fun*! We all know that computers are fun, but what does it mean for computing to be accessible?\r\n\r\nThis poster highlights different areas of accessibility in scientific computing:\r\n- Taking skills into account: easy installation, simple API.\r\n- Taking learning backgrounds into account: documentation like \"Julia for Matlab users\" or \"Pluto for Excel users\".\r\n- Web accessibility: screen reader support, high-contrast mode.\r\n- Availability: free and open source, easy to find.\r\n\r\nThe Pluto developers are excited to meet you and discuss the topic at this poster! Come visit us and get a free Pluto sticker :)", "recording_license": "", "do_not_record": false, "persons": [{"guid": "17bd1580-e1fc-5230-9599-f2cc7f6c0695", "id": 4400, "code": "ECC83Q", "public_name": "Fons van der Plas", "avatar": "https://pretalx.com/media/avatars/f0aa406188ec55a18281bdb7457212ec_27CspZS.jpg", "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/X8J38K/", "id": 44049, "guid": "283c8a0b-e3cf-5f6a-ae0d-b6fc1b95a196", "date": "2024-07-10T20:30:00+02:00", "start": "20:30", "logo": null, "duration": "00:30", "room": "Method (1.5)", "slug": "juliacon2024-44049-large-scale-mechanistic-modeling-of-immune-pathway-in-julia", "title": "Large-Scale Mechanistic Modeling of Immune Pathway in Julia", "subtitle": "", "track": "Posters", "type": "Poster", "language": "en", "abstract": "In this poster, a large-scale mathematical model of the JAK-STAT pathway was implemented in Julia to explore IFN-I ligand discrimination. Model fitting, often time-consuming in large-scale models, was performed to different temporal IFN-I inputs. Julia\u2019s efficiency significantly accelerated this process by expediting sensitivity analysis, parameter estimation and identifiability analysis. The resulting model facilitates investigation into the mechanisms underlying ligand discrimination.", "description": "Type I interferons (IFN-I) play a crucial role in the cell's antiviral, antiproliferative, and immunomodulatory functions. Although multiple IFN-I subtypes activate the JAK-STAT pathway through the same receptor, they induce distinct downstream activation patterns. The mechanisms responsible for this ligand discrimination remain largely unclear. Hence, we employed the Julia Language to adapt the ODE model of the JAK-STAT pathway developed by Kok et al. to investigate IFN-I discrimination, focusing on IFN\u03b1 and IFN\u03b2. This model, consisting of 41 state variables and 73 parameters, was directly imported into Julia from SBML. \r\n\r\nVarious temporal inputs of IFN-I, including sustained, single-pulse and double-pulse stimuli, were used to calibrate the model. Parameter estimation was performed to improve model fitting to this temporal data, both local and global sensitivity analysis were employed to acquire candidate parameters. Next, the optimal parameter set was determined based on the Akaike Information Criteria. Finally, Profile Likelihood Analysis was employed to assess the identifiability of these parameters. The utilization of the Julia language significantly expedited these computational processes. The resulting model provides a tool for exploring the mechanisms underlying the ligand discrimination of IFN-I.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "659e559f-068f-5f2d-9964-466de999d08e", "id": 39700, "code": "PRUDPK", "public_name": "Michelle van Haften", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/VJEVSJ/", "id": 44471, "guid": "42cf9f60-73a9-54e6-a911-e18578638498", "date": "2024-07-10T21:00:00+02:00", "start": "21:00", "logo": null, "duration": "00:30", "room": "Method (1.5)", "slug": "juliacon2024-44471-threadeddensesparsemul-jl-multi-threaded-dense-sparse-matmul-", "title": "ThreadedDenseSparseMul.jl: Multi-threaded Dense-Sparse Matmul.", "subtitle": "", "track": "Posters", "type": "Poster", "language": "en", "abstract": "We present `ThreadedDenseSparseMul.jl`, a library that efficiently computes dense-sparse multiplications and outperform competing packages (and `Base.SparseArrays`) in about 20 lines of code (for the basic functionality) by leveraging `Polyester.jl`. We further discuss the effect of Julia's memory layout on the performance and analyze the influence of different threading models.", "description": "Several Julia packages have been implemented to deal with multi-threaded multiplication of sparse and dense matrices, including\r\n\r\n- `IntelMKL.jl`\r\n- `ThreadedSparseCSR.jl`\r\n- `ThreadedSparseArrays.jl`\r\n- `SparseArrays.jl` (no threading)\r\n\r\nHowever, typically these libraries focus on sparse-times-dense multiplications, which are sub-optimal due to Julia's row-major memory layout.\r\nWe present theory and benchmarks how we can outperform these libraries, as well as existing C/C++ libraries, by 2 to 16x specifically for the dense-times-sparse case by focusing on optimizing cache-locality and `Polyester.jl` for a low-overhead threading model.\r\nWe will also provide additional comments on the influence of the CPU architecture (cache size etc) on the theoretical and practical performance.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "70bb7547-3c92-5048-b57f-6bcd79c8ab43", "id": 39999, "code": "XN93M7", "public_name": "Romeo Valentin", "avatar": "https://pretalx.com/media/avatars/nice_photo_2_compressed_d7bNI9p.jpg", "biography": "- PhD Student at the Stanford Intelligent Systems Lab (SISL), developing certification guidelines for employing data-driven algorithms in safety-critical applications.", "answers": []}], "links": [], "attachments": [], "answers": []}], "For Loop (3.2)": [{"url": "https://pretalx.com/juliacon2024/talk/X8RYLT/", "id": 44152, "guid": "8979c75a-25c6-5897-916b-5ddb64fe43b6", "date": "2024-07-10T11:00:00+02:00", "start": "11:00", "logo": null, "duration": "00:30", "room": "For Loop (3.2)", "slug": "juliacon2024-44152-solving-integral-equations-with-inti-jl", "title": "Solving integral equations with Inti.jl", "subtitle": "", "track": "Math(s)", "type": "Talk", "language": "en", "abstract": "While partial differential equations dominate the computational modeling\r\nlandscape, integral equations provide a powerful and often overlooked\r\nalternative for addressing a diverse array of physical phenomena. In this talk\r\nwe introduce Inti.jl, a new package to accurately and efficiently\r\nsolve integral equations in two- and three-dimensions. Inti.jl is designed\r\nto be user-friendly and extensible, and provides tools for the discretization,\r\nsolution, and post-processing of integral equations.", "description": "Despite their potential, integral equation methods face underutilization\r\ncompared to popular methods like finite elements and finite differences. This is\r\nlargely attributed to the challenges associated with the discretization of the\r\nintegral operators ---which usually contain singular kernels---, and to the\r\ndifficulties related to the efficient approximation of the dense linear systems\r\nthat arise. We believe such challenges have hindered the development of\r\nuser-friendly and extensible libraries for integral equations, further limiting\r\ntheir adoption.\r\n\r\nIn this presentation, we introduce *Inti.jl*, a Julia package crafted to solve\r\nvolume and boundary integral equations. *Inti.jl* provides the fundamental\r\nbuilding blocks for discretizing and manipulating various commonly used integral\r\noperators appearing in mathematical physics, such as the single- and\r\ndouble-layer operators, as well as volume potentials, for a variety of problems\r\nof physical interest (e.g. acoustic scattering, Stokes flow, linear elasticity).\r\n\r\n*Inti.jl* is designed to be user-friendly and extensible, and at present it\r\nalready offers a wide range of functionalities, including:\r\n\r\n- Integration with *Gmsh* for the pre- and post-processing capabilities\r\n- A unified *API* for the use of modern acceleration techniques such as *Fast\r\n Multipole Method* and *\u210b-matrices* by wrapping external packages\r\n- Specialized integration routines to handle the singular kernels often\r\n appearing in integral equation methods\r\n\r\nOur main goal with this package is to bridge the gap between researchers who\r\ndevelop efficient methods for solving integral equations, and the potential\r\nusers of such methods who may not have the necessary mathematical or\r\ncomputational background to implement the methods themselves.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "87844e98-6bac-5c44-998a-963d388279e3", "id": 38984, "code": "7BLADE", "public_name": "Luiz M. Faria", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/PY8KAH/", "id": 44378, "guid": "0e774087-87b4-5651-b0aa-b6e3e70e55ca", "date": "2024-07-10T11:30:00+02:00", "start": "11:30", "logo": null, "duration": "00:30", "room": "For Loop (3.2)", "slug": "juliacon2024-44378-building-confidently-in-julia-with-interface-driven-design", "title": "Building Confidently in Julia with Interface Driven Design", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "By solving the two-language problem, Julia makes highly performant systems easier to develop. One trade-off we accept is no static language guarantees, which can yield difficulties and runtime errors in production. We explore tools and techniques to assuage these concerns. The cornerstone of our toolbox is interface-driven design, formalizing the \"verbs\" our types obey. We show how formalizing interfaces can simplify development, improve robustness, and help productionize Julia code.", "description": "Julia confers great potential performance to users. However, the path from performant prototype to reliable-but-still performant system in deployment is paved with a growing list of methods to implement, function signatures that may need updating across many methods, and types where some method always seems to be missing but only fails when the code is run. Building large, composable, inter-operable systems in any language is difficult, and Julia is no exception. However, these problems may be especially frustrating within Julia as entire classes of problems may not be caught until runtime, potentially in production.\r\n\r\nOften, an exhaustive test suite is seen as a panacea to production or robustness woes. Yet, without some standardization of how tests are performed, these tests can be the subject of almost as much maintenance time as the core code itself. For large projects where the size of the test suite grows, so too does the time to encounter failing tests from interface and method signature changes, rather than underlying correctness issues. As the maintenance burden and time to test increases, so too does the likelihood of missing a test and accidentally shipping broken code. \r\n\r\nThis talk proposes that focusing on the interfaces which comprise systems allows us to improve our confidence that code is correct, at least from the perspective of the type and dispatch system. We observe that numerical and algorithmic correctness is often not a rate-limiting problem the Julia community tends to face given its scientific and academic roots, but test suites can often overfit to this style of correctness. Crucially, the highly composable nature of Julia often leads to many implicit or accidental assumptions being held by developers which may not hold in general, resulting in runtime failure when types do not compose as expected or fully satisfy implicit interfaces.\r\n\r\nOur thesis is that by leveraging tools to implement and enforce interfaces, a functional codestyle to ensure conformity, and building a uniform testing structure, we can more easily manage complexity in a large and growing codebase. These techniques improve productivity by informing developers of what a type implementation needs, simplifying refactor efforts, and catching interface violations which otherwise may slip through the cracks of an incomplete test suite.\r\n\r\nWe explore the idea of managing complexity through interface-driven design via two lenses: the theoretical approach of design patterns and processes with associated tooling, as well as a study of existing packages which showcase interface best practices.\r\n\r\nFrom the design perspective, we highlight the existence of packages such as RequiredInterfaces.jl, BinaryTraits.jl, or Interfaces.jl to define, check, and potentially dispatch on interfaces or traits. We will discuss the implications of these packages on developer productivity as documentation and \"onboarding\" tools, as well as tools to improve trust in our Julia code to be better-behaved in production by reducing runtime errors strictly to logical errors. A discussion of functional codestyle, how it interoperates with interface-driven design, and advantages of a functional approach to logical correctness will be included. Traits and interfaces will be compared and contrasted, viewing traits as a dispatch tool relying on an interface specification. We will discuss the process that goes into developing good interfaces to capture the essence of a problem, chiefly separating the \"what\" from the \"how\" of functions.\r\n\r\nFor exemplar packages, we focus on two different approaches:\r\n\r\n1. Implementing robust interface testers, such as ChainRulesTestUtils.jl which provides a tester function for rrules and frules\r\n2. Implementing a powerful common \"language\" and interface for packages to inter-operate, as demonstrated by GeoInterface.jl\r\n\r\nThe implications of these packages and their offerings to improving the developer experience will be emphasized. ChainRulesTestUtils.jl not only verifies an interface implementation, but also checks for the numerical correctness as well. GeoInterface.jl utilizes interfaces to facilitate easy interoperability between packages which satisfy its interface specification.\r\n\r\nWe conclude by reiterating that while the performance of Julia the language is remarkable, the developer experience of building large and robust systems is fraught with difficulties. Yet, taking an interface-driven design approach to Julia leverages the strengths of the Julia language (multiple dispatch, specializing methods, composition of types) to arrive at code which avoids easy but subtle mistakes when working on projects of increasing complexity. By designing projects to prioritize managing complexity as a codebase grows, we hope to ease difficult parts of productionizing Julia codebases.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "d93ce2cd-2856-593d-af69-b466f5bb7887", "id": 18435, "code": "7YNMYP", "public_name": "Sam Buercklin", "avatar": "https://pretalx.com/media/avatars/1517042033017_KOzZESO.jpg", "biography": "Sam is a Julia developer providing expertise at converting ideas into effective, reliable, and maintainable reality. His work spans from differentiable physics to renewable energy optimization, and he brings experience taking Julia-developed solutions into industrial-scale production. \r\n\r\nRight now, Sam provides Julia expertise for solving problems related to renewable energy, but previously he worked as a research engineer at Metalenz and a member of technical staff at LeafLabs. He holds degrees in electrical engineering from both the University of Illinois and MIT. \r\n\r\nSam is the founder of [G2I Computing LLC](https://www.g2icomputing.com) and is excited to continue solving difficult problems with scientific computing in Julia.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/MH9JZN/", "id": 43533, "guid": "cc71592a-b220-5aa1-9f4e-9cd8794a3627", "date": "2024-07-10T12:00:00+02:00", "start": "12:00", "logo": "https://pretalx.com/media/juliacon2024/submissions/MH9JZN/appbundler_HMvRpTU.png", "duration": "00:30", "room": "For Loop (3.2)", "slug": "juliacon2024-43533-appbundler-jl-bundle-your-julia-gui-application", "title": "AppBundler.jl - Bundle your Julia GUI Application", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "AppBundler is a versatile tool that simplifies the bundling of Julia GUI applications across different desktop platforms, including Linux, MacOS, and Windows. This talk discusses its capabilities and showcases the bundling and post-processing steps required to create a double-click installer for each platform.", "description": "Julia's ecosystem has a comprehensive range of GUI framework bindings, remarkably compatible across all major desktop platforms. Deploying Julia applications is straightforward for those with technical know-how, particularly in terms of instantiating the project's manifest file. However, the average user typically anticipates a more streamlined installation process. This includes a double-click installer, with easy access from the system menu, complete with an icon. They also expect a clean uninstallation process that doesn't leave residual files and returns the system to its prior state.\r\n\r\nIn the current digital landscape, major desktop platforms have adopted the concept of self-contained applications running in confined environments. For instance, Windows utilizes the MSIX package format, Linux employs flatpacks and snaps, while MacOS favors app bundles. Each format has unique organizational requirements for application directories, configuration files, and inherent functionalities. This poses a challenge to beginners aiming to package their Julia GUI applications.\r\n\r\nThe introduction of AppBundler marks a significant advancement in simplifying desktop application bundling for Julia. It relies on `main.jl` as the entry point and the project's `Manifest.toml` file to encapsulate all the necessary dependencies, including Julia itself. AppBundler uses a scratch space for caching artifacts, which streamlines the bundling process. It makes it quick, predictable, and convenient for rapid iteration. While it offers cross-platform bundling support for MacOS and Linux, AppBundler necessitates additional postprocessing for Windows and MacOS bundles. However, this is simplified through bundled helper scripts, accompanied by comprehensive documentation to assist developers. Additionally, AppBundler facilitates platform-specific customisation via a recipe system.\r\n\r\nDuring the hands-on portion of the talk, we will explore application packaging strategies for Linux, MacOS, and Windows. For Linux, I will demonstrate creating a snap package, showcasing installation, user data storage, and debugging techniques. In MacOS, the focus will be on post-installation procedures, including precompilation, launcher creation, code signing, and `.dmg` file packaging, supplemented by a demonstration video. For Windows, we'll delve into the intricacies of packaging, such as precompilation, the `makemsix` command, and debugging, also accompanied by a video demonstration.\r\n\r\nThe talk will also cover customization options, starting with `Project.toml` variables under the `[bundle]` section. Here, application display names, summaries, and descriptions are defined for user visibility upon installation. We'll then discuss individual bundle configurations using the `meta` directory as the primary source for overriding the bundle recipe. A practical example will feature a GTK application bundled with strict confinement, detailing the specification of plugs in the `snap.yaml` file. We'll include the inclusion of a custom icon, and the redirection of standard output using `init.jl`, along with a custom `precompile.jl` file. Furthermore, we will explore the AppBundler.jl recipe system, demonstrating its utility in creating bundling recipes for uncovered platforms and packaging formats.\r\n\r\nFinally, the talk will conclude with a discussion on the future directions of `AppBundler.jl`. The session will briefly address the current state of application confinement issues, which are crucial for being able to distribute applications in marketplaces, which I have stumbled upon. Finally, I will propose potential hackathon projects, such as developing a GitHub action script and integrating `PackageCompiler.jl` into the bundling pipeline.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "5138e127-9de6-5836-89d3-afc2d700f101", "id": 3897, "code": "BYKXMD", "public_name": "Janis Erdmanis", "avatar": "https://pretalx.com/media/avatars/2894312_s1hZnsJ.jpeg", "biography": "I am a full-stack Julia developer with a Ph.D. in physics from TU Delft, and I enjoy simplifying complex concepts and making the impossible possible. I have thorough experience in Julia, HTTP, QML, cryptographic protocols, and system architectures. Find more about me on [janiserdmanis.org](https://janiserdmanis.org).", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/TEPSRM/", "id": 44419, "guid": "9f9b9b53-b04e-53eb-a299-c9f84a45dda4", "date": "2024-07-10T14:00:00+02:00", "start": "14:00", "logo": null, "duration": "00:10", "room": "For Loop (3.2)", "slug": "juliacon2024-44419-accelerate-insights-code-slides-faster-", "title": "Accelerate Insights: Code -> Slides, Faster!", "subtitle": "", "track": "Notebooks & Graphics", "type": "Lightning talk", "language": "en", "abstract": "\"Love Julia but hate PowerPoint? This is your solution!\"\r\n\r\nDiscover how to effortlessly transform your lightning-fast Julia findings into easily shareable and reproducible insights. Despite Julia's speed, the process of turning results into compelling reports can be a headache with traditional tools like PowerPoint.\r\n\r\nHate turning your Julia findings into PowerPoint reports? I'll show you how Quarto and Literate.jl makes it easy to transform Julia code into polished reports in seconds!", "description": "\"Love Julia but Hate PowerPoint? This talk is your solution!\"\r\n \r\nDiscover how to effortlessly transform your lightning-fast Julia findings into easily shareable and reproducible insights. Despite Julia's speed, the process of turning results into compelling reports can be a headache with traditional tools like PowerPoint. And it's beginner friendly! \r\n \r\nEnter Quarto \u2013 a brief overview reveals its potential for painless report creation. Learn how combining Quarto with Julia becomes a game-changer. Leveraging Literate.jl, we'll demonstrate how to supercharge your workflow, making the transition from raw code to polished report seamless.\r\n \r\nThe talk features a quick demo showcasing Quarto's features, emphasizing the simplicity of transforming Julia code into a polished, reproducible report in seconds. Join us and revolutionize the way you share and communicate your Julia-powered insights. No more PowerPoint headaches \u2013 just fast, shareable, and easily reproducible results.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "a07aa6ab-dbc2-5bd9-b05d-1cbd48281f73", "id": 39974, "code": "VCP7VU", "public_name": "Jack Diamond", "avatar": null, "biography": "A data analyst from London, fortunate enough to use Julia as my main language and to get to play with all the cool tools available! A real Julia convert hoping to share one or two cool tricks!", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/MSSGKF/", "id": 43297, "guid": "b265c6b4-127f-5a59-9800-d1622eb1f392", "date": "2024-07-10T14:10:00+02:00", "start": "14:10", "logo": "https://pretalx.com/media/juliacon2024/submissions/MSSGKF/jcon24_sample_2rdGSBQ.png", "duration": "00:10", "room": "For Loop (3.2)", "slug": "juliacon2024-43297-simulating-nano-particle-trajectories-using-cminject-jl", "title": "Simulating nano-particle trajectories using CMInject.jl", "subtitle": "", "track": "Physics & Quantum Chemistry", "type": "Lightning talk", "language": "en", "abstract": "CMInject.jl is a numerical simulation framework that simulates nano-particle trajectories through aerosol injectors and their expansion into a vacuum chamber, e.g., single particle diffractive imaging (SPI) experiments. The background gas flow around the particles is simulated using computational fluid dynamics tools and the particles are tracked using a Lagrangian based tool built with Julia. This simulation tool is used to evaluate performance of various aerosol injector designs.", "description": "Single-particle diffractive imaging (SPI) is a technique employed to capture the atomic-scale structures and dynamics of (bio-) nano-particles. The complete three-dimensional structure of a nano-particle is reconstructed through a series of two-dimensional diffraction patterns from randomly oriented particles. In SPI experiments, an aerosol injection system is utilized to transfer particles into the gas phase, capturing a collimated particle stream in a vacuum. The design of these injection systems must be continuously optimized to obtain very high density particle streams with less background gas in order to increase X-ray interactions with the particles for generating high-quality diffraction patterns. However, this requires investigating a large parameter space such as operating pressures, geometrical shapes of the injector, size of the particle etc., making experimental characterization and optimization impractical. A numerical framework capable of simulating the flow of the carrier gas in the injection system and the particle trajectories is set up. The fluid flow inside aerosol injector and the vacuum chamber is simulated using a multiscale computational fluid dynamics approach (e.g., OpenFoam/SPARTA-DSMC). Subsequently, the particle trajectories are computed using the forces (e.g., Stokes drag) obtained from interpolated velocity fields along with the Brownian motion of the particles. This framework provides a quick and efficient way to search the experimental parameter space for optimization and also to further understand the physical phenomena (e.g., flow and particle interaction) inside the injection systems. \r\n\r\nThe particle trajectory calculator in this framework was initially programmed and benchmarked in Python. In order to improve the computational performance, it is currently being converted to Julia. Furthermore, the ease of using Julia and the code alignment with the mathematical notations enhances clarity in understanding of the code for potential future contributors. In this presentation, we present the initial bechmarking results of the simulation tool, validate it based on experimental data and evaluate the computational performance by comparing with the former Python version.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "f1bcc65d-cce6-505b-b10d-e7472c0bb6d8", "id": 39118, "code": "DNW38C", "public_name": "Surya Kiran Peravali", "avatar": "https://pretalx.com/media/avatars/peravali_profile_jcon_d8cdiZ2.png", "biography": "Research fellow at Deutsches Elektronen-Synchrotron DESY, Hamburg, Germany and Helmut-Schmidt-Universit\u00e4t / University of Federal Armed Forces, Hamburg, Germany\r\n\r\nSurya's research focuses on developing advanced simulation methodologies to resolve fluid flows having wide range of flow states (e.g., continuum and free molecular flows) and its interaction with nano particles. This involves bundling different multiscale and multiphysics simulation methodologies supported by high-performance computing and data science methods", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/BCKDFL/", "id": 44266, "guid": "f7838905-7553-5692-b766-7fdc54a55d2a", "date": "2024-07-10T14:20:00+02:00", "start": "14:20", "logo": "https://pretalx.com/media/juliacon2024/submissions/BCKDFL/entangled-logo-export_c6Z9URc.svg", "duration": "00:10", "room": "For Loop (3.2)", "slug": "juliacon2024-44266-natural-science-computer-modeling-and-literate-programming", "title": "Natural Science, Computer Modeling and Literate Programming", "subtitle": "", "track": "Notebooks & Graphics", "type": "Lightning talk", "language": "en", "abstract": "We present [Entangled](https://entangled.github.io), a generic tool for maintainable literate programming. Entangled works together with Markdown based documentation tools like `Documenter.jl`, and ships with a build system for running longer computations. We show an example from the Earth Sciences in a package called [`CarboKitten.jl`](https://mindthegap-erc.github.io/CarboKitten.jl), simulating the formation of carbonate reef platforms and their produced limestone stratigraphy.", "description": "Computer modeling is a vital tool in the natural sciences. However, often the software packages and scripts used in producing scientific output, live a separate life from the published research output. This is a major concern when it comes to reproducibility of results. There are many techniques for literate programming, mixing computer code and literary prose, that try to address this issue. Examples are Jupyter, RMarkdown and in the case of Julia, `Literate.jl` and `Pluto.jl`. None of these solve the issue of code complexity, and their use often results in code that is not well designed, unmaintainable and not reusable.\r\n[Entangled](https://entangled.github.io) is a system for literate programming, based on Markdown, that synchronizes code blocks and plain executable code in two directions. Executable code is *tangled* from any number of code blocks and code blocks can be *stitched* back into the markdown when some of the code was edited. This way, the executable code is always the same as which is presented in documentation and we retain the use of IDE features when editing code. Because code is treated like plain text, Entangled is completely agnostic to the used programming language. The resulting code can be reused as any other module.\r\nBecause Markdown can be exported to HTML using standard documentation tools (e.g. `Documenter.jl`) as well as LaTeX/PDF (using Pandoc), Entangled can be used to write documentation, but also completely self-evaluating journal papers.\r\nWe show an example from the Earth Sciences in a package called [`CarboKitten.jl`](https://mindthegap-erc.github.io/CarboKitten.jl), simulating the formation of carbonate reef platforms and their produced limestone stratigraphy. Though the Entangled tool is written in Python, the focus of the talk will be on how Literate Programming in general can help disseminate superior tools like Julia in the Matlab dominated world of geoscience.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "20da41ff-8a8c-5929-afca-58403895ebd8", "id": 39874, "code": "K9DBMP", "public_name": "Johan Hidding", "avatar": "https://pretalx.com/media/avatars/johan_lfyt81G.jpg", "biography": "Research Software Engineer at the Netherlands eScience Center with a background in Cosmology and an obsession with Functional Programming.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/CMT7PR/", "id": 44418, "guid": "a7152635-8f73-5d35-a59d-eb976058ee8a", "date": "2024-07-10T14:30:00+02:00", "start": "14:30", "logo": "https://pretalx.com/media/juliacon2024/submissions/CMT7PR/FUSE_picture_xOUzFCO.png", "duration": "00:30", "room": "For Loop (3.2)", "slug": "juliacon2024-44418-fuse-jl-the-power-of-julia-for-the-fusion-industry", "title": "FUSE.jl: the power of Julia for the fusion industry", "subtitle": "", "track": "Physics & Quantum Chemistry", "type": "Talk", "language": "en", "abstract": "FUSE.jl is a framework developed in Julia that integrates first-principle, machine-learning, and reduced models to enable comprehensive self-consistent simulations for fusion power plant design. Multi-objective high performance computing (HPC) optimization is used to identify designs that minimize cost while maximizing several physics, engineering, and control performance metrics. Accessible via a web portal and API, attendees learn about FUSE's and Julia's innovative role in fusion energy.", "description": "Delivering fusion energy, with its promise of providing a clean and virtually limitless power source, is one of the most compelling scientific and engineering challenges of our time. Julia has enabled a transformation in integrated modeling for fusion device design from a disconnected multi-language approach to a unified framework called the FUsion Synthesis Engine (FUSE). \r\n\r\nIn this talk we introduce FUSE, a framework developed to support General Atomics\u2019 and others\u2019 fusion power plant designs. FUSE has been developed with the purpose of going beyond traditional low dimensionality methods by integrating first-principle, machine-learning, and reduced models in comprehensive self-consistent simulations. FUSE was developed from the ground up exclusively in Julia, with a focus on computational efficiency and scalability\r\n\r\nTraditional fusion device design methods start with low-fidelity simplified analytical models to identify an operational point that is then further refined with high-fidelity iterative analyses. This approach inevitably leads to design modifications that are hard to integrate in a unified framework because the design process is slow, costly and only allows for the in-depth study of one design at the time. The fusion community typically relies on loosely-coupled, file-based models from various scales and languages. Transitioning to Julia creates a unified ecosystem, enhancing model and data structure retention in memory. This shift results in a 1000-fold speed increase compared to earlier integrated modeling frameworks. Beyond accelerated simulations, adopting Julia significantly improves maintenance, documentation, testing, and deployment of FUSE.\r\n\r\nFUSE leverages the ITER IMAS data structure standard to facilitate effective data exchange among its various models. This approach not only enables the framework to be modular, allowing for the execution of models of varying fidelity across a broad range of domains, but also ensures its direct applicability to ITER and numerous other tokamak fusion experiments that have adopted the IMAS standard.\r\n\r\nOne of the most prominent features of FUSE lies in its capability to run both stationary and time-dependent simulations. Dynamics are efficiently modeled by coupling physics models that take into consideration the separation of time and spatial scales that naturally occur in a fusion plasma. Other processes, like the dynamics of the thermal conversion systems, which include a network of heat exchangers, turbines, compressors, and generators, rely on the ModelingToolkit.jl package.\r\n\r\n\u2003\r\nWhen used for fusion power plant design, a multi-objective optimization approach is utilized to efficiently explore designs that meet the stringent requirements of fusion energy generation but also adhere to economic and practical constraints. This optimization process identifies solutions that strike the best balance between cost and performance, covering the diverse domains of physics, engineering, and control systems.\r\n\r\nFUSE is currently a proprietary framework and outside of the development team, access to the tool is granted via a web portal and REST API, also written in Julia. This approach eases the barrier to entry for engineers looking to optimize a fusion power plant design, as well as to developers interested in including some of the leading-edge features of FUSE in their own software via its API.\r\n\r\nAttendees at JuliaCon will delve into FUSE's architecture and understand its practical applications in fusion power plant design via technical demonstrations. The session will also cover how developers and users can leverage and build upon FUSE.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "20ee5413-aaff-50cb-ab3e-2dc5a5d22da5", "id": 39973, "code": "QAEB7P", "public_name": "Tim Slendebroek", "avatar": "https://pretalx.com/media/avatars/15123123_JeFrsVU.jpeg", "biography": "I'm deeply involved in the world of fusion energy research, where I mainly focus on modeling entire facilities and crafting the frameworks that hold it all together. I'm not just behind the scenes \u2013 I'm also hands-on with FUSE.jl and related packages, both developing and using them. It's an exciting field where there's always something new to learn and explore!", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/RGM3GL/", "id": 44372, "guid": "8a63afb9-c53e-51e6-9ccc-500db3f8d71d", "date": "2024-07-10T15:00:00+02:00", "start": "15:00", "logo": null, "duration": "00:30", "room": "For Loop (3.2)", "slug": "juliacon2024-44372-geant4-jl-particle-transport-in-julia", "title": "Geant4.jl - Particle transport in Julia", "subtitle": "", "track": "Physics & Quantum Chemistry", "type": "Talk", "language": "en", "abstract": "Discover the Julia wrappers for Geant4 simulation, a vital C++ toolkit in particle physics, also used in nuclear and medical physics, and space science. Our focus is on a new, user-friendly interface for developers, improving ergonomics while preserving high performance. Explore the enhanced usability, a great advantage over the intricate C++ interface for occasional users developing custom simulations. Join us to explore Julia's empowering role in streamlining particle physics simulations.", "description": "We present the [Geant4.jl](/~https://github.com/JuliaHEP/Geant4.jl) package, which provides a wrapper to the [Geant4](https://geant4.web.cern.ch) toolkit for the simulation of the passage of elementary particles through matter, which is widely used in high-energy physics as well as in other domains such as nuclear physics, medical physics, and space science. The toolkit is rather large with several thousands of C++ classes. Given the pivotal role of simulation in contemporary high-energy physics experiments, our focus is on unveiling a new, more user-friendly interface tailored for simulation application developers. This interface not only improves ergonomics but also maintains high computational performance, in particular fully exploiting multi-threading. We emphasise the significant advantages this enhanced toolkit usability provides, particularly when compared to the complexity of the C++ interface that occasional users need to use for their customised simulations.\r\nThe wrappers are based on [CxxWrap.jl](/~https://github.com/JuliaInterop/CxxWrap.jl) and they are generated automatically using the [WrapIt](/~https://github.com/grasph/wrapit) tool. This helps enormously on the sustainability, in particular taking into account the size of the Geant4 project.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "193b24d1-a6f0-5829-bd9d-bb1c01273485", "id": 39953, "code": "BSNZ3P", "public_name": "Pere Mato", "avatar": null, "biography": "Senior Applied Physicist at the European Organization for Nuclear Research (CERN) developing and maintaining common scientific software for high-energy physics experiments", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/LJMZ9W/", "id": 44373, "guid": "0341420e-3242-5a6d-826f-b012dc281de0", "date": "2024-07-10T15:30:00+02:00", "start": "15:30", "logo": null, "duration": "00:30", "room": "For Loop (3.2)", "slug": "juliacon2024-44373-jet-reconstruction-in-julia", "title": "Jet Reconstruction in Julia", "subtitle": "", "track": "Physics & Quantum Chemistry", "type": "Talk", "language": "en", "abstract": "Jets in high energy physics are sprays of particles resulting from one parent particle produced in a collision at colliders. Clustering the energy deposits of these final particles is vital for reconstructing the properties of the original parent. We present a new Julia package, `JetReconstruction.jl`, which does just that. We discuss the performance compared to existing solutions, particularly in C++, and demonstrate the ergonomics and extensibility we have achieved in Julia.", "description": "Jet physics is one of the key areas where we can advance our knowledge of the interactions of fundamental particles. In collider physics, e.g., at CERN's Large Hadron Collider, two beams of counter-rotating energetic particles are impacted head on. This results in the production of new, highly energetic, heavy particles, which are unstable. These decay rapidly into other particles, forming a cascade of many final state stable particles. These particles are detected in high energy physics experiments, particularly in calorimeters, designed to stop and measure the energy of incident particles.\r\n\r\nThe task of grouping these energy deposits is one of the key tasks in high-energy physics event reconstruction. Jets are formed from clustering energy deposits, based on different momentum and geometric criteria. Various desirable properties are stability against small amounts of additional energy (infrared safety) or against a single input splitting into two aligned deposits (collinear safety).\r\n\r\nAs a mature area of study, there is a well known \"standard\" C++ package, FastJet, which is widely used. However, as Julia becomes more popular in the field, doing reconstruction natively in Julia is desirable. To this end, we have developed the [`JetReconstruction.jl`](/~https://github.com/JuliaHEP/JetReconstruction.jl) package, with the aim of offering performant and ergonomic interfaces to the problem.\r\n\r\nWe describe the algorithms implemented in the package, including Anti-kT, Cambridge-Achen and Inclusive-kT as well as various pruning and cleaning options. We compare its feature set and performance with FastJet and discuss its potential evolution to become a more general clustering tool.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "a575df37-f4ff-54d7-935e-f84b4b6abdf3", "id": 39954, "code": "TUWWGB", "public_name": "Graeme Stewart", "avatar": "https://pretalx.com/media/avatars/me_3BqwSXV.png", "biography": "I am a high energy physicist working at the European Laboratory for Nuclear Research, [CERN](https://home.cern). I have had a strong involvement in software throughout my working life, contributing to the [ATLAS experiment](https://atlas.cern) in recent years. I work closely with the High Energy Physics Software Foundation ([HSF](https://hepsoftwarefoundation.org)). Recently I started to work more and more in Julia, which I think shows tremendous promise for high energy physics.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/QU3SPL/", "id": 44468, "guid": "5d53310a-a285-5882-a050-8098e00e3b04", "date": "2024-07-10T16:00:00+02:00", "start": "16:00", "logo": null, "duration": "00:10", "room": "For Loop (3.2)", "slug": "juliacon2024-44468-lyotropic-liquid-crystals-thermodynamics-numerical-methods", "title": "Lyotropic Liquid Crystals: Thermodynamics & Numerical methods", "subtitle": "", "track": "Physics & Quantum Chemistry", "type": "Lightning talk", "language": "en", "abstract": "We first present the hydrodynamic equations for lyotropic (concentration-dependent) Liquid Crystals (LCs), derived via the thermodynamic GENERIC framework. Next, we showcase the development of a .jl package to solve these equations, combining 1) finite differences (inspired by DiffEqOperators.jl) and 2) the Lattice Boltzmann method (found in Trixi.jl). Solving in 2D and 3D at equilibrium and under different flows, we demonstrate that our methodology allows the prediction of experimental LC data.", "description": "Experimental data found in active lyotropic Liquid Crystals (LCs), typically a nematic phase coexisting with an isotropic fluid and molecular motors, have displayed complex patterns that remain unexplained. These studies raise questions about the effective parameters transforming such chaotic dynamics into coherent motion. To tackle this challenging problem, we use the GENERIC framework to construct a thermodynamically consistent model. In this framework, the time-evolution equations of out-of-equilibrium systems are naturally described by the sum of energy and entropy contributions. With this, we systematically formulate a set of equations, describing the behavior of concentration-dependent (lyotropic) LCs. We solved our equations by using a hybrid lattice Boltzmann code written in Julia that combines 1) finite differences (inspired by DiffEqOperators.jl) and 2) the Lattice Boltzmann method (found in Trixi.jl); the time evolution is integrated using DifferentialEquations.jl. We show that, in 2D, two passive isotropic droplets within a nematic environment can form stable defect cores with topological charges of +1/2 and -1/2, as observed in chromonic LC data. In 3D, the simulations predict the evolution of an axial droplet configuration, as seen in experiments with surfactants. Additionally, we numerically study the effect of our solutions under different type of flows (passive or active). Our findings demonstrate that experimental results can be quantitatively predicted by the proposed GENERIC equations and by this numerical approach.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "822bcd5d-7211-5cce-8903-579df1f0a930", "id": 40001, "code": "CEKHFM", "public_name": "Jonathan Salmer\u00f3n-Hern\u00e1ndez", "avatar": null, "biography": "Mexican Ph.D. candidate at the Pritzker School of Molecular Engineering at the University of Chicago.", "answers": []}, {"guid": "1b129d0a-ba68-5e18-89e5-32fff3d12030", "id": 10406, "code": "B3DVHD", "public_name": "Pablo Zubieta", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/A88DR9/", "id": 42902, "guid": "dea90126-f570-53a9-8e84-a0011edbc28b", "date": "2024-07-10T16:10:00+02:00", "start": "16:10", "logo": null, "duration": "00:10", "room": "For Loop (3.2)", "slug": "juliacon2024-42902-efficient-composable-solver-for-non-equilibrium-flows", "title": "Efficient, composable solver for non-equilibrium flows", "subtitle": "", "track": "Physics & Quantum Chemistry", "type": "Lightning talk", "language": "en", "abstract": "Employing a tree-based Cartesian mesh, our project presents a distributed parallel solver for kinetic equations, focusing on multi-scale complex flow across a wide range of regimes.", "description": "As a physical field can exhibit significant inhomogeneity in space and time, a static mesh may lead to computational inefficiencies or inaccurate numerical results. Adaptive Mesh Refinement (AMR) addresses this challenge by redistributing computational resources based on the evolving features of the solution, resulting in a balance between efficiency and accuracy. Besides, the tree-based Cartesian enables a versatile description of boundaries of the computational domain and discontinuous solutions therein[1].\r\nThe ongoing project focuses on the numerical solution of kinetic equations. The high concentration of solution and the associated steep slopes highlight the necessity of adaptive discretization[2]. Based on P4est.jl[3] and MPI.jl[4], we develop the distributed quadtree/octree-based solver for multi-scale complex flows across a wide range of regimes. The lightning talk will first introduce the theoretical underpinnings and then showcase the applicability of the solver through comprehensive benchmarks. The pros and cons of the implementation using Julia will be discussed.\r\nReferences\r\n[1] Wang, Zhi Jian. \u201cA Quadtree-based adaptive Cartesian/Quad grid flow solver for Navier-Stokes equations.\u201d Computers & Fluids 27 (1998): 529-549. \r\n[2] Chen, Songze et al. \u201cA unified gas kinetic scheme with moving mesh and velocity space adaptation.\u201d J. Comput. Phys. 231 (2012): 6643-6664.\r\n[3] J. Lampert, M. Schlottke-Lakemper, H. Ranocha. /~https://github.com/trixi-framework/P4est.jl\r\n[4] Byrne, Simon, Lucas C. Wilcox, and Valentin Churavy. \"MPI. jl: Julia bindings for the Message Passing Interface.\" Proceedings of the JuliaCon Conferences. Vol. 1. No. 1. 2021.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "3a808c08-e08a-58ab-88e8-37e4ab73a769", "id": 38886, "code": "G9NS3G", "public_name": "Longqing Ge", "avatar": null, "biography": "Ph.D Student in LTCS and CAPT, Department of Mechanics and Engineering Science, College of Engineering, Peking University, Beijing, China", "answers": []}, {"guid": "e2b31359-848b-5853-a547-9e3ef06a35b4", "id": 38908, "code": "BSZBAQ", "public_name": "Tianbai Xiao", "avatar": null, "biography": "Professor at Chinese Academy of Sciences", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/7ZJ3SQ/", "id": 43263, "guid": "d6130488-cbd7-5470-9750-031652c5d214", "date": "2024-07-10T16:20:00+02:00", "start": "16:20", "logo": null, "duration": "00:10", "room": "For Loop (3.2)", "slug": "juliacon2024-43263-unlocking-lightning-speed-of-julia-s-dict-with-robinhood-hashing", "title": "Unlocking lightning speed of Julia's Dict with Robinhood Hashing", "subtitle": "", "track": "Julia Internals and Tooling", "type": "Lightning talk", "language": "en", "abstract": "Rooted in Google's Swiss Tables brilliance, the current implementation flaunts 1-byte metadata, elevating successful lookups to unprecedented efficiency. However, this leads to inefficient performance for unsuccessful queries. Enter the paradigm shift: the fusion of metadata intricacies and the precision of Robinhood hashing. Visualize this \u2013 rehashing without redundant hash recalculations and lightning fast querying time (both success and failure scenarios). Brace for a `Dict` metamorphosis!", "description": "`Problems with Julia's Dict`\r\n\r\nJulia's Dict is currently using a variation of Swiss Tables which is an open addressing based linearly probed dictionary, but it has certain shortcomings.\r\n1. For each key, value pair in the Dict, we store a byte where 7 bit is hash and 1 bit indicates validity. Storing this metadata allows us to improve the performance of successful lookups but unsuccessful lookups do not benefit from this.\r\n2. During rehashing of the hash table, we have to recompute the hash again for inserting the elements into its proper location and it might be an expensive operation to compute the hash for complex data types. We can make use of metadata to get rid of this shortcoming and improve Dict\u2019s performance during rehash.\r\n\r\n`Proposed Solution`\r\n\r\nWe can do all of this using a simple concept called RobinHood hashing. We can use metadata to effectively improve rehash performance and time taken for unsuccessful lookups, at the same time not compromising on the lightning speed that we all crave.\r\n\r\nBlatantly speaking, Robin Hood hashing technique is a variation of linear probing technique which improves over certain shortcomings of the linear probing. The basic idea is to take normal open addressing, and then use one clever trick in order to drastically reduce the variance of the expected average and maximum probe lengths. Shorter expected probe length leads to faster insert, delete and lookup operation on the hash table. \r\n\r\nThe way to do this is: when you probe for a position to insert a new element, if the probe length for the existing element is less than the current probe length for the element being inserted, swap the two elements and keep going. This small operation leads to drastic change in expected probe lengths and we can use this fact to improve the time of unsuccessful lookups. How? Intuitively, this simple swapping operation leads to non-decreasing probe lengths among keys which suffer from \"hash collision\". During search of a particular key, we can use this fact to terminate our search \"early\" if our current probe length is greater than the element that we are currently hovering over. \r\n\r\nKeeping all of the above in mind, the idea that I am proposing is to use 4 byte of metadata per hash table entry and store 3 byte for hash and 1 byte for storing probe sequence length. Storing 3 bytes of hash allows us to save on the time needed to rehash the hash table. 1 byte for storing the probe length allows us to compute the \u201ccost\u201d of occupying a particular location cheaply, thus allowing us to terminate the lookups faster.\r\n\r\nAnother important aspect to discuss with respect to hash tables is the Load Factor. Load factor is often expressed as % and determines the max capacity of the hash table until it has to rehash again. So, a load factor of 90% means that the table can be 90% full before it needs to rehash again. This takes into account both valid keys and \u201ctombstone\u201d entries. Tombstone entries are dummy entries for keys which have been recently deleted. Having these entries results in improving performance of deletions but they contribute adversely to load factor.\r\n\r\nI experimented with the backward shift deletion technique, which does not keep tombstone entries, but removes the entry from the table and then proceeds to shift back all the neighboring entries to fill the \u201cvoid\u201d created on deletion. On one hand, this helps to simplify branch conditions for insertions and lookups (because you don\u2019t have to bother about \u201cmissing\u201d entries), but on the other hand, this operation of backward shift on the adjacent entries increases the time for deletion.\r\n\r\n```Benchmarks```\r\n\r\n1. Although the mean probe length of Dict and RobinDict both stays close to 1 for 10K entries, the variance of RobinDict is much less compared to Dict. For 10K entries, it\u2019s almost one-third of the variance shown by Dict. We see ~3x improvement in the max probe length of RobinDict for 10K entries. For Dict, max probe length can go up to 50 entries, whereas in RobinDict never crosses more than 15.\r\n\r\n2. While inserting an entry into Dict, we would see large spikes in the time as we inserted more and more (key, value) pairs. It happens during the time the table rehashes. With the usage of metadata, that \u201cspike\u201d while insertion has completely disappeared.\r\n\r\n3. For deleting entries from RobinDict, it\u2019s a tradeoff - while lower probe length would lead to small lookup time, but backward shifting deletion would lead to increase in time. From my benchmarks, ~60% of the time RobinDict outperforms Dict in terms of deletion.\r\n\r\n4. For successful lookups, 80% of the time RobinDict outperforms current Dict implementation, while for unsuccessful lookups it outperforms about 60% of the time. To be honest, I expected this value to be slightly on the higher side (like 90%), but there is an extra branch condition introduced (as compared to Dict) in lookup code flow which is causing the increase in time.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "eabc6d9f-9607-5d28-9c89-8880ca9cad82", "id": 39095, "code": "PQ8TNN", "public_name": "Koustav Chowdhury", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/SHZ3JS/", "id": 44437, "guid": "87047880-ada4-5450-b2dc-6c893dbcbc21", "date": "2024-07-10T16:30:00+02:00", "start": "16:30", "logo": "https://pretalx.com/media/juliacon2024/submissions/SHZ3JS/wgpu3_ut3IrIY_jIQ4jY3.png", "duration": "00:30", "room": "For Loop (3.2)", "slug": "juliacon2024-44437-wgpu-graphics-and-compute-api-in-julia", "title": "WGPU graphics and compute API in Julia", "subtitle": "", "track": "Accelerated & large-scale computing", "type": "Talk", "language": "en", "abstract": "WebGPU is an vendor independent and platform independent GPU API which can target desktop and web applications alike. The design and architecture of API closely follows modern GPU API like Vulkan and Metal. Since WebGPU is vendor independent and supports both graphics and compute shaders, supporting WebGPU will enable package developers to provide GPU based visualisation and compute tools that can cover larger user base with less maintenance at the cost of negligible performance.", "description": "Julia programming language is known for its ecosystem in Scientific Computing, Data Science, Machine learning and parallel computing. And `Makie` serves as a glue for data visualisation of results , plots and simulations derived from its ecosystem. Julia also covers the major GPU vendors like Nvidia, AMD and Intel with packages like `CUDA.jl`, `OneAPI.jl`, `Metal.jl`. Also Deep learning frameworks like FluxML competes with TensorFlow and PyTorch fairly well for its extensibility, one language theme and ease of use. Though Deep learning ecosystem is more or less complete in Julia, there is a recent trend of 'GPU acceleration on any device' like WONNX ([webonnx/wonnx: A GPU-accelerated ONNX inference run-time written 100% in Rust, ready for the web (github.com)](/~https://github.com/webonnx/wonnx)). These are possible by support for WebGPU API in their respective programming languages. In addition to this use case there is also a need for less specialisation for different architectures and different vendors for maintainability. Another recent trend of running native application with WebAssembly is going to be prevalent for its small memory foot print over web application. A combination of WASM with WebGPU also has its place [WebGPU powered machine learning in the browser with Apache TVM | OctoML](https://octoml.ai/blog/webgpu-powered-machine-learning-in-the-browser-with-apache-tvm/). Any effort on `WebAssembly` with `WebGPU` access will increase portability of applications and use cases for Julia. In an effort to fill this gap, this proposal aims to bring WebGPU API support to Julia. \r\n\r\nSome effort has been put into this in the following packages along these lines:\r\n* WGPUNative.jl \r\n* WGPUCore.jl\r\n* WGPUgfx.jl\r\n* WGPUCompute.jl\r\n* WASMCompiler.jl\r\n\r\nThe packages `WGPUgfx.jl` and `WGPUCompute.jl` are working, user facing packages for WebGPU API. \r\n\r\nThe current proposal presents proof of concepts of graphics API that is akin to `Threejs`, the popular 3D web graphics API and also the Julia GPU compute library that runs on all devices. The potential applications of this proposal applications include `WONNX` like Machine learning inference engine, accelerating `Makie.jl` plotting speed, Game Engines, Physics Engines, GPUAudio and GPU Signal processing pipelines, Toy parallel programming API for teaching etc.\r\n\r\nAll repos can be found in [JuliaWGPU (github.com)](/~https://github.com/JuliaWGPU)\r\n\r\nTentative topics for 30 minutes talk :\r\n1. `WebGPU` introduction and use cases. (2 mins).\r\n2. `WebGPU` architecture. (3 mins)\r\n3. `WGSL` language and Julia like `WGSL` syntax for syntax highlighting and validation [unlike string interpolation using packages like `Mustache`] (5 mins)\r\n4. `WGSLTypes` package internals which instrument memory layout requirements automatically and transpiles Julia code to wgsl code. (10 mins)\r\n5. `Threejs` like API demo and GPU kernel demo (Potential to get closer to KernelAbstractions). (5 mins)", "recording_license": "", "do_not_record": false, "persons": [{"guid": "6bca32e4-6db5-54b2-90c9-6b9b19813507", "id": 26376, "code": "PKPCMY", "public_name": "Arhik K", "avatar": "https://pretalx.com/media/avatars/H31m0U15_400x400_A6BozZH.jpg", "biography": "Research Engineer in India. Interested in Spatial AI, Computational neuroscience and Signal Processing. Music making and badminton are my favourite hobbies.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/VHFAQ8/", "id": 44383, "guid": "ac99ac46-3dd2-5716-91b1-d42fbd7e5845", "date": "2024-07-10T17:00:00+02:00", "start": "17:00", "logo": null, "duration": "00:30", "room": "For Loop (3.2)", "slug": "juliacon2024-44383-fastice-jl-a-massively-parallel-ice-flow-model-running-on-gpus", "title": "FastIce.jl: a massively parallel ice flow model running on GPUs", "subtitle": "", "track": "Accelerated & large-scale computing", "type": "Talk", "language": "en", "abstract": "We introduce [FastIce.jl](/~https://github.com/PTsolvers/FastIce.jl), a novel ice flow model for massively parallel architectures, written in Julia. Leveraging GPUs (Nvidia, AMD) and supporting distributed computing through MPI.jl, FastIce.jl includes a thermo-mechanically coupled Full-Stokes ice flow model. We present the performance testing of FastIce.jl in single-node and distributed scaling benchmarks on LUMI, the largest European supercomputer.", "description": "Efficient modeling of ice sheets involves considering multiple coupled physical processes, including thermo-mechanical interactions. While using a Full-Stokes model to resolve ice flow in Greenland and Antarctica provides most accurate results, it can be cost-prohibitive on a large scale with existing software, necessitating the use of high-performance computing (HPC).\r\n\r\nWe introduce [FastIce.jl](/~https://github.com/PTsolvers/FastIce.jl), a novel ice flow model for massively parallel architectures, written in Julia. Leveraging GPUs (Nvidia, AMD) and supporting distributed computing through [MPI.jl](/~https://github.com/JuliaParallel/MPI.jl), [FastIce.jl](/~https://github.com/PTsolvers/FastIce.jl) includes a thermo-mechanically coupled Stokes ice flow model. [FastIce.jl](/~https://github.com/PTsolvers/FastIce.jl) is written to be easily extensible, and its core is fully differentiable, enabling data assimilation pipelines using adjoint sensitivities and automatic differentiation (AD).\r\n\r\nIn this talk, we present the modular architecture of [FastIce.jl](/~https://github.com/PTsolvers/FastIce.jl), consisting of core library of components, and monolithic solvers implementing ice flow models. The core library aims to simplify the development of the numerical algorithms on structured grids, and includes functions and data types for working with computational grids, fields, boundary conditions, and discrete differential operators. The solvers build upon the core library and include the computational kernels to integrate the equations of ice motion.\r\n\r\nWe describe our usage of task-based programming in Julia to simplify synchronisation between concurrently running GPU kernels, CPU functions, and MPI communication. We present the performance testing of [FastIce.jl](/~https://github.com/PTsolvers/FastIce.jl) in single-node and distributed scaling benchmarks on LUMI, the largest European supercomputer.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "0c6c77c7-960f-5bcf-af1d-498a9f3b764c", "id": 26305, "code": "FRBW87", "public_name": "Ivan Utkin", "avatar": "https://pretalx.com/media/avatars/fa500983b169c53548cdb52743800b2f_7GdLy6s.jpg", "biography": null, "answers": []}, {"guid": "848e7813-344c-5834-aeeb-a0d80906a475", "id": 4202, "code": "ZTATFJ", "public_name": "Ludovic R\u00e4ss", "avatar": "https://pretalx.com/media/avatars/Pict_LR_jwV2Krw.jpg", "biography": "Geo-HPC, Julia GPU & Supercomputing.", "answers": []}, {"guid": "14334aa6-a172-5050-b8a0-09c999cd2e52", "id": 4374, "code": "CRJ7BV", "public_name": "Mauro Werder", "avatar": "https://pretalx.com/media/avatars/werder_3C3WoW4.jpg", "biography": "I am a glaciologist and Julia programmer. I work at ETH-Zurich and the Swiss Federal Institute for Forest, Snow and Landscape Research (WSL).", "answers": []}, {"guid": "07d57051-331c-52d5-89fa-74f5ede4f430", "id": 4264, "code": "QTKXPY", "public_name": "Samuel Omlin", "avatar": "https://pretalx.com/media/avatars/csm_OMLIN_samuel_3a2df39fc2_IJUK2tt.jpg", "biography": "Computational Scientist | Responsible for Julia computing\r\nSwiss National Supercomputing Centre (CSCS), ETH Zurich", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/PJT3HT/", "id": 43105, "guid": "a98c8ebd-007e-5032-a74c-3707c3e865ba", "date": "2024-07-10T20:30:00+02:00", "start": "20:30", "logo": null, "duration": "00:30", "room": "For Loop (3.2)", "slug": "juliacon2024-43105-hestia-jl-modeling-and-control-of-heat-conduction", "title": "Hestia.jl - Modeling and Control of Heat Conduction", "subtitle": "", "track": "Posters", "type": "Poster", "language": "en", "abstract": "In many engineering tasks like semiconductor fabrication or laser welding, we face the problem of simulating and controlling the heat conduction. To tackle this issue, we developed Hestia.jl - a Julia library to simply create heat conduction simulations for up to three dimensional models. It offers several options to specify material properties, boundary conditions and actuator configurations for realistic simulation scenarios. This enables us to simulate and control a thermal dynamics at once.", "description": "Heat conduction is a fundamental physical phenomena and an important research field in process engineering, production technology and material science. Thermal processes must be understood perfectly for example in semiconductor fabrication to produce high-quality microelectronics. Many general purpose solvers like FEniCS or Trixi.jl are used to simulate complex physical problems, but these software libraries often require deep knowledge of the mathematical models and their numerical approximations. In contrast, Hestia only focuses on heat conduction models and offers a toolkit for engineers to simply specify the desired physical behavior.\r\n\r\nIn this talk, we introduce [Hestia.jl](/~https://github.com/stephans3/Hestia.jl) and we create step-by-step heat conduction simulations from small to large scale. In particular, we explain the choice of material properties and boundary conditions. For example, material properties can be defined as isotropic or anisotropic, and boundary conditions can be specified as heat transfer and heat radiation for each boundary side individually. Furthermore, we show how actuators like heating elements can be included in the simulation to steer the heat conduction and we describe briefly how to design the (optimal) control strategy. As Hestia.jl uses the high-class numerical methods of the SciML ecosystem, we also discuss the interaction between both toolkits. Finally, we evaluate the recent state of Hestia.jl and give an outlook on possible future developments.\r\n\r\n**Key features:**\r\n- Temperature-dependent material properties\r\n- Anisotropic heat conduction\r\n- Configuration of actuator and sensor characteristics", "recording_license": "", "do_not_record": false, "persons": [{"guid": "99ba07aa-959d-58fa-8f65-799e62e07840", "id": 38999, "code": "FRAUBS", "public_name": "Stephan Scholz", "avatar": null, "biography": "Stephan Scholz is a research assistant at the University of Applied Sciences Ravensburg-Weingarten and a doctoral student at the University of Ulm. His research interests include the simulation and control of large-scale physical models like partial differential equations and scientific machine learning.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/7KHQUU/", "id": 44410, "guid": "56e75c04-8987-5c36-92ba-4c0d895bb39a", "date": "2024-07-10T21:00:00+02:00", "start": "21:00", "logo": null, "duration": "00:30", "room": "For Loop (3.2)", "slug": "juliacon2024-44410-circuit-model-discovery-for-porous-silicon-based-supercapacitors", "title": "Circuit Model Discovery for Porous Silicon-Based Supercapacitors", "subtitle": "", "track": "Posters", "type": "Poster", "language": "en", "abstract": "With an ever-increasing complexity in supercapacitors\u2019 structure, it has become that much harder to find a feasible circuit model which could and should aid in the physical modelling of a supercapacitor towards a better understanding of the physical processes involved in its electrical behaviour. This work proposes a different method of finding a circuit model for a porous Si-based supercapacitor using ModelingToolkit.jl and DifferentialEquations.jl.", "description": "Supercapacitors have been gaining more attention in the past few decades due to their potential of replacing batteries as the main portable energy storage device and while many breakthroughs have been made in this particular department, there is still an aspect to it that is most often brushed aside, the circuit modelling.\r\n Although it is true that performing circuit modelling on a supercapacitor would be a useful tool towards a better understanding of its complex processes that contribute to charge transfer and storage, it is also true that finding the said model is a daunting task. As a consequence, most circuit modelling for a supercapacitor is often made through making an array of assumptions and brute forcing the process until a mathematical equivalent, of which there\u2019s an infinity, rather than a physical equivalent is found. From Occam\u2019s razor, a philosophical principle, to infinite RC ladders, a valid, yet brute force method, it has become apparent that in order for the supercapacitor science to evolve, a better model discovery strategy is needed to constrain the space of possible circuit variants. \r\nThis work proposes using Julia\u2019s arsenal of modelling tools on supercapacitor data, specifically electrochemical impedance spectroscopy and cyclic voltammetry, towards finding a circuit model directly derived from said data. The main principle of this modelling strategy consists in starting with an RC circuit configuration and updating on it as more information from the data is introduced, so rather than coming up with an infinite RC ladder circuit, the exact configuration of specific resistances and capacitances will be discovered from the information offered by Nyquist, Bode and CV (cyclic voltammetry) graphs.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "a5a85066-d5e3-528e-9eaf-06d732e1b293", "id": 39967, "code": "RBRPFZ", "public_name": "Irina-Nicoleta Bratosin", "avatar": "https://pretalx.com/media/avatars/photo_5321242752513594253_y_AJRaWA0.jpg", "biography": "I am a researcher at National Institute for Research and Development in Microtechnologies -IMT Bucharest and a phD student at University of Bucharest, Faculty of Physics. My main interests in research are electrical measurements and supercapacitors and I'm interested in expanding my knowledge of Julia towards developing physical and circuit models for supercapacitors.", "answers": []}], "links": [], "attachments": [], "answers": []}], "Function (4.1)": [{"url": "https://pretalx.com/juliacon2024/talk/NXX8EZ/", "id": 44473, "guid": "40c237d5-8a19-5ff7-99c6-f2a6201ce9a4", "date": "2024-07-10T11:00:00+02:00", "start": "11:00", "logo": "https://pretalx.com/media/juliacon2024/submissions/NXX8EZ/logo_ayyvzLM.png", "duration": "00:30", "room": "Function (4.1)", "slug": "juliacon2024-44473-finch-jl-a-compiler-for-sparse-and-structured-array-programming", "title": "Finch.jl: A Compiler for Sparse and Structured Array Programming", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "Finch is a Julia-to-Julia compiler which adapts array programs to the sparsity and structure of data automatically. Many arrays are structured, such as sparse, run-length-encoded, symmetric, or triangular arrays. Finch fuses high-level array operations such as `map` and `reduce` together with customizable sparse array formats to produce high-performance structure-aware kernels. Finch also supports more detailed programs with the `@finch` macro which allows users to optimize further.", "description": "**Sparse and Structured Array Programming**\r\n \r\nFrom FORTRAN to Numpy, arrays have revolutionized how we express computation. However, convenient array programming has long been limited to dense data. In practice, arrays are often structured, such as sparse, run-length-encoded, or symmetric arrays. Support for structured arrays is fragmented and incomplete. Existing frameworks struggle to support the combinatorial explosion of possible array structures, operations, and optimizations. Many sparse and structured computations must be fused to get peak performance, making library approaches infeasible.\r\n\r\nIn this talk, we will describe a compiler, Finch, which adapts existing programs and interfaces to the structure and sparsity of the inputs. Finch supports a familiar programming language of high-level operators, loops, statements, ifs, breaks, etc., over a wide variety of array structures, such as sparsity, run-length-encoding, symmetry, triangles, padding, or blocks. Finch enables programmers to capture complex, real-world data scenarios with the same productivity they expect from dense arrays. Our approach enables new loop optimizations across multiple domains, unifying techniques such as sparse tensors, databases, and lossless compression.\r\n\r\nThe core datastructure provided by Finch is the `Tensor` struct which allows users to describe sparse formats dimension-by-dimension. Finch `Tensor` supports all of the functions users would expect from an AbstractArray, such as `+`, `*`, `map` and `reduce`, with the addition of an `@fused` interface to fuse these functions together. Power users can target the more detailed `@finch` interface, which allows them to apply finch to loopy Julia programs for more customization and optimization opportunities.\r\n\r\nThese features lead to dramatic speedups in operations such as SpMV and SpGEMM, image processing, and graph analytics. They also enable us to extend the array abstraction beyond integer grids to continuous data (e.g., A[3.14159]), accelerating geometry problems. Finally, Finch is being integrated as a backend for the Python PyData/Sparse package, targeting a broader audience of programmers and finding new applications for Julia.\r\n\r\nThis talk will contain:\r\n-the theory behind Finch\r\n-the joys and challenges of writing compilers in Julia\r\n-perhaps a demo or tutorial\r\n-what we\u2019re working on for Finch 1.0.\r\n\r\nLinks:\r\n[Finch.jl](/~https://github.com/willow-ahrens/Finch.jl)\r\n[Finch Paper](https://arxiv.org/abs/2404.16730)\r\n[Looplets Paper](https://dl.acm.org/doi/10.1145/3579990.3580020)", "recording_license": "", "do_not_record": false, "persons": [{"guid": "20d5a7f4-1acf-589e-b358-d0b724062865", "id": 40004, "code": "NZCZWK", "public_name": "Willow Marie Ahrens", "avatar": "https://pretalx.com/media/avatars/IMG_0336_EhQ1DJD.jpeg", "biography": "Willow Ahrens is a Ph.D. student at MIT studying tensor compilers, advised by Saman Amarasinghe and graduating next year. She is the developer of Finch, a productive datastructure-driven array programming language. Willow received her BS in Computer Science with a minor in Mathematics from University of California, Berkeley. Willow is a Department of Energy Computational Science Graduate Fellow, and values scientific applications. Willow is also a glassblower, and teaches first-time glassblowers at the MIT Glass Lab.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/DAJ7YT/", "id": 44239, "guid": "410a8b90-aa78-5e21-8b32-8aac2c68f073", "date": "2024-07-10T11:30:00+02:00", "start": "11:30", "logo": null, "duration": "00:30", "room": "Function (4.1)", "slug": "juliacon2024-44239-cedareda-tutorial-a-fresh-approach-to-circuit-simulation", "title": "CedarEDA tutorial: a fresh approach to circuit simulation", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "CedarEDA is a new advanced analogue circuit simulation tool. This tutorial will go into how to use it to simulate your electronic circuits. CedarEDA is able to process circuits/models described in Spice, Spectre, Verilog-A or in pure Julia. It is API first and is driven entirely via Julia script.\r\nThis tutorial is primarily of interest to electrical and electronic engineers, or anyone else with an interest in electronic circuit design.", "description": "The tutorial will give you everything you need to get up and running using CedarEDA.\r\nIt will go through step by step how to use CedarEDA.\r\n\r\n- How to import/define a circuit\r\n- How to perform simulations including:\r\n - Transient\r\n - DC\r\n - AC\r\n - Noise\r\n- How to compute measures of circuit performance such as rise time, delay, etc\r\n- How to setup automated verification of measures, and sweep over values (such as transistor sizes, or resistances etc) and verify which ranges of values are acceptable\r\n- How to automatically tune your circuit parameters to achieve eg a minimal delay\r\n\r\nCedarEDA is currently available as an open source project.\r\nThe tool is currently very usable, but has some rough edges.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "664a19d5-5ffa-5ed2-a817-b29b98221b23", "id": 1095, "code": "ECUZBT", "public_name": "Frames Catherine White", "avatar": "https://pretalx.com/media/avatars/72975308c5458a5e25cbedba12465294_hmwBxaw.jpg", "biography": "Frames has been creating cursed Julia code since 2014. Her particular interests are compiler stuff, automatic differentiation, machine learning and optimization. She maintains more Julia packages than she can count. She has a PhD in natural language processing, and undergraduate degrees in electrical engineering, pure mathematics, and computation.\r\nShe has worked at Invenia Labs (RSE team), JuliaHub (CedarEDA), and is currently looking for new opportunities.", "answers": []}, {"guid": "703b0ea2-7dd3-58bd-9bad-d3cc900fd0ad", "id": 39270, "code": "APZ3EA", "public_name": "Keno Fischer", "avatar": null, "biography": "Keno Fischer is one of the core developers of the Julia programming language and co-founder and CTO at JuliaHub. His earliest involvement with the Julia project was the port of Julia to Windows, the creation of (the current iteration of) the Julia REPL, the Julia optimizer, Julia\u2019s `--bug-report` feature as well as numerous other language features and packages. Within the Julia community, he is known for creating packages that push the boundary of possibilities of the language and ability to debug even the thorniest of issues. He holds an A.M. degree in Physics from Harvard University.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/TPFF8L/", "id": 44439, "guid": "fc593210-2bcc-5140-a36e-91299b56841a", "date": "2024-07-10T12:00:00+02:00", "start": "12:00", "logo": "https://pretalx.com/media/juliacon2024/submissions/TPFF8L/falling_sphere_UJT8gvS.png", "duration": "00:30", "room": "Function (4.1)", "slug": "juliacon2024-44439-julia-for-particle-based-multiphysics-with-trixiparticles-jl", "title": "Julia for Particle-Based Multiphysics with TrixiParticles.jl", "subtitle": "", "track": "Physics & Quantum Chemistry", "type": "Talk", "language": "en", "abstract": "We present TrixiParticles.jl, an open-source numerical simulation framework designed for accessible particle-based multi-physics simulations and implemented in Julia as part of the Trixi Framework. Besides highlighting the high performance and rapid adaptability of Julia in our implementation, we will demonstrate the application of TrixiParticles.jl through multiple examples in the fields of fluid dynamics, mechanics, and multiphysics.", "description": "Our primary goal is to provide a user-friendly application, accessible even to those unfamiliar with particle-based methods. Therefore, TrixiParticles.jl is designed with easy extensibility in mind, enabling researchers to experiment with new models or methods quickly, without the need to study and modify large parts of the code. We further try to achieve optimal performance without significantly impacting readability or ease of use. This approach allows users not only to prototype new ideas rapidly, but also to efficiently scale up simulations. In our talk, we will present examples of applications in fluid dynamics, mechanics, and fluid-structure interactions. We will also showcase how easily our code can be adapted to new models and used in multiphysics simulations. Furthermore, we will provide an overview of current and future features.\r\n\r\nFeature highlights:\r\n- Multiple Smoothed Particle Hydrodynamics (SPH) schemes to model fluids with free surfaces.\r\n- SPH model for modelling elastic solids.\r\n- Fluid-structure interaction\r\n- Quick setup of complex geometries.\r\n- User-friendly post-processing", "recording_license": "", "do_not_record": false, "persons": [{"guid": "113f3e57-fbc8-5a10-9fdb-0ade573fda59", "id": 39985, "code": "E7WVLW", "public_name": "Erik Faulhaber", "avatar": "https://pretalx.com/media/avatars/profile_pic_xNjkFhl.JPG", "biography": "PhD Student in the Numerical Simulation Group at University of Cologne, Germany.", "answers": []}, {"guid": "1483c3e8-f3cb-5a1f-950c-79e712cebd52", "id": 39990, "code": "F3CPQZ", "public_name": "Niklas Neher", "avatar": "https://pretalx.com/media/avatars/20240201_085533_IMPrcBA.jpg", "biography": "PhD student at High Performance Computing Center Stuttgart.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/PG8JXT/", "id": 43412, "guid": "9ddf58fd-122b-5b75-ba10-87a825dc1d05", "date": "2024-07-10T14:00:00+02:00", "start": "14:00", "logo": "https://pretalx.com/media/juliacon2024/submissions/PG8JXT/Screenshot_2024-01-12_at_05.17.34_oVuCMFK.png", "duration": "00:30", "room": "Function (4.1)", "slug": "juliacon2024-43412-introducing-dmrjulia-v1-0", "title": "Introducing DMRjulia v1.0", "subtitle": "", "track": "Physics & Quantum Chemistry", "type": "Talk", "language": "en", "abstract": "With a growing user-base, DMRjulia v1.0 is undergoing its inaugural release. This software package has been in development for a few years and has been used in previous academic publications for computations on tensor networks for strongly correlated quantum problems. We discuss new algorithms that have been developed in the software package and the interface of those access tools with hardware provided on the Digital Research Alliance of Canada. We will cover the documentation available.", "description": "Our talk will cover introductory material related to the use of the DMRjulia library that is pending its v1.0 release\r\n\r\n/~https://github.com/bakerte/DMRJtensor.jl\r\n\r\nand include an existing article for beginners:\r\n\r\nT.E. Baker, S. Desrosiers, M. Tremblay, M.P. Thompson, M\u00e9thodes de calcul avec r\u00e9\u0301seaux de tenseurs en physique Can. J. Phys. 99, 4 (2021) [(Basic tensor network computations in physics), arxiv: 1911.11566, p. 20]\r\n\r\nWe will debut a full software tutorial for the software and cases where DMRjulia has led to new developments in modelling of quantum systems, including some that will be released around March 2024. Basic design principles that are native to Julia will be discussed with lessons and recommendations. We also hope to contribute back to the core Julia codebase with some improvements that we have identified.\r\n\r\nOur software was optimised around a specific hardware implementation on the Digital Research Alliance of Canada\u2019s hardware infrastructure. We will debut public interfaces to use these tools and recap lessons learned on the specific implementation of the library on hardware. We used several packages in the Julia ecosystem to accomplish the best interface possible with the best performance. Our software has been optimized to run efficiently in shared memory environments, including high-performance computing clusters. We will demonstrate results and recap lessons learned in improving performance by utilizing parallelism in background libraries and tuning parameters for a given computing environment.\r\n\r\nThe core of the software package is available online under the DMRJtensor package, but the v1.0 release (scheduled for May) and some helper tools (scheduled for June) will be made available concurrent with some ongoing academic research. We will also cover any new developments with these new capabilities and ways in which DMRjulia can be used for scientific results at the cutting edge of research.\r\n\r\n\r\nWe are grateful to the US-UK Fulbright Commission for financial support and being hosted by the University of York. This research was undertaken in part thanks to funding from the Bureau of Education and Cultural Affairs from the United States Department of State.\r\n\r\nT.E.B. graciously thanks funding provided by the postdoctoral fellowship from Institut quantique. This research was undertaken thanks in part to funding from the Canada First Research Excellence Fund (CFREF).\r\n\r\nThis research was undertaken, in part, thanks to funding from the Canada Research Chairs Program. The Chair position in the area of Quantum Computing for Modelling of Molecules and Materials is hosted by the Departments of Physics & Astronomy and of Chemistry at the University of Victoria.\r\n\r\nThis work has been supported in part by the Natural Sciences and Engineering Research Council of Canada (NSERC) under grants RGPIN-2023-05510 and DGECR-2023-00026.\r\n\r\nThis work is supported in part with support from the University of Victoria's start-up grant from the Faculty of Science.\r\n\r\nThis research was enabled in part by support provided by Research Computing Services at the University of Victoria as well as the Digital Research Alliance of Canada (alliance\u200bcan\u200b.ca).", "recording_license": "", "do_not_record": false, "persons": [{"guid": "51ea5007-06f6-5f45-b54d-361e55fd4e11", "id": 39211, "code": "G7M8BW", "public_name": "Thomas E. Baker", "avatar": "https://pretalx.com/media/avatars/_N4A5925_small_IT8w8bS.jpg", "biography": "Prof. Thomas E. Baker is the Canada Research Chair in Quantum Computing for Modelling of Molecules and Materials. He previously served as a Fulbright US Scholar in the United Kingdom at the University of York in 2021. He was the Prized Postdoctoral Researcher in Quantum Sciences and Technology at Institut quantique (Universit\u00e9 de Sherbrooke, Qu\u00e9bec). He has an active research interest in quantum computing, quantum algorithms, tensor network methods, and quantum chemistry. He is interested in working with people from all different backgrounds.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/EDU9LS/", "id": 41434, "guid": "465e263f-8a8b-5ab0-9645-6de1eb6bfb6b", "date": "2024-07-10T14:30:00+02:00", "start": "14:30", "logo": null, "duration": "00:05", "room": "Function (4.1)", "slug": "juliacon2024-41434-scientific-data-minisymposium", "title": "Scientific Data Minisymposium", "subtitle": "", "track": "Scientific Data Minisymposium", "type": "Minisymposium", "language": "en", "abstract": "Julia's elegance and speed lends itself to applications in scientific computing that requires a strong scientific data ecosystem. Building upon prior successful minisymposia on tabular data, the Scientific Data minisymposium will extend the scope to dealing with annotated, hiearchical, and n-dimensional data. Additionally, the symposium will invite talks on processing large datasets using advanced chunking techniques, distribution of big data via cloud computing and data formats.", "description": "A robust scientific data ecosystem is critical to Julia's applications in scientific computing. The ability to handle scientific data interchange allows Julia to interoperate with existing scientific projects which may be using code in other languages such as MATLAB, Python, C, C++, or Rust. Prior minisymposia on data have emphasized the use of Julia with tabular data in CSV files or web friendly data formats such as JSON. Julia's strong support for tabular data and JSON provide a strong foundation to build upon. Scientific data also extends into n-dimensional arrays with dimensions describing space, time, and other parameters such as wavelength that may not be well served these data formats. These datasets are organized into nested hiearchial groups and are annotated with standardized regular vocabulary.\r\n\r\nPotential topics for the scientific data minisymposium are as follows.\r\n1. Advanced input and output APIs for scientific data. This includes HPC interfaces such as Message Passing Interface (MPI), cloud data APIs, and interfaces with databases.\r\n2. Data formats for scientific data interchange. Discussion of data formats such as HDF5, NetCDF, FITS, Zarr, ADIOS2, and ASDF or their incoporation into data schemes such as scverse would be welcome.\r\n3. Data exchange between threads and (distributed) processes. This especially includes techniques that transfers data while retaining annotations and context.\r\n4. The implementation of abstract interfaces over similar data interfaces. For example, implementing a general n-dimensional chunk based interface supporting multiple data formats.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "a35affbc-7050-5773-aec2-8e67ac099bd9", "id": 10421, "code": "USMVVE", "public_name": "Mark Kittisopikul, Ph.D.", "avatar": "https://pretalx.com/media/avatars/20180813_141024_cropped_2BWNFJe.jpg", "biography": "Software Engineer, Scientific Computing Software at the Howard Hughes Medical Institute Janelia Research Campus", "answers": []}, {"guid": "29bfa32f-3455-5dc0-a6e9-1ae81be90a98", "id": 39226, "code": "YUUFT7", "public_name": "Fabian Gans", "avatar": null, "biography": "I am a physicist by training and am currently studying Global Biogeochemical Cycles in the Earth System using Remote Sensing, Meteorological and other data sets based at the Max-Planck-Institute for Biogeochemistry, Jena, Germany.\r\nMy first commit to my first Julia package dates back to the year 2012 and since then I have authored and contributed to packages in the Julia Geodata and processing ecosystem, examples are NetCDF.jl, Zarr.jl, DiskArrays.jl, YAXArrays.jl EarthDataLab.jl and others. Some may know me under my github tag @meggart", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/DWTEVS/", "id": 43424, "guid": "0e3e2ae0-bad0-5bb4-9750-78d4f3d07511", "date": "2024-07-10T14:35:00+02:00", "start": "14:35", "logo": null, "duration": "00:30", "room": "Function (4.1)", "slug": "juliacon2024-43424-diskarrays-jl-for-working-with-large-disk-based-nd-arrays", "title": "DiskArrays.jl for working with large disk-based nd-arrays", "subtitle": "", "track": "Scientific Data Minisymposium", "type": "Talk", "language": "en", "abstract": "DiskArrays.jl provides the AbstractDiskArray interface for chunked and compressed n-dimensional arrays with slow random access. Implementing the interface gives access to a wide set of indexing, views, reductions and broadcasting. Downstream packages can optimize parallel operations on these chunked arrays using the AbstractDiskArray interface.", "description": "Scientific data formats like NetCDF, HDF5 or Zarr allow storing large array data on local or network drives or in the cloud.\r\nJulia packages for these data types provide custom getindex/setindex methods on datastructures that map to an array on disk. \r\nHowever, implementing the full AbstractArray interface has proven to be difficult, since the interface is based on the assumption of efficient access to single array elements. \r\nIn many cases data are internally stored in compressed chunks, so that a naive implementation of the AbstractArray interface would lead to very poor performance for many IO operations. \r\nDiskArrays.jl provides the AbstractDiskArray interface, for which backends only have to implement methods to read and write dense hyperrectanglular subsets of the array for their data type. \r\nIn addition to read/write support an interface for querying the internal chunking structure of the disk-based array is provided by DiskArrays.jl to simplify the implementation of efficient mapreduce and broadcast operations on these arrays. \r\nDownstream packages can work with diskarrays to define chunk-based computations in a backend-agnostic way and we present an overview of how downstream packages like Rasters.jl, YAXArrays.jl or DiskArrayEngine.jl provide efficient and user-friendly ways to perform operations on larger-than memory compressed arrays.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "29bfa32f-3455-5dc0-a6e9-1ae81be90a98", "id": 39226, "code": "YUUFT7", "public_name": "Fabian Gans", "avatar": null, "biography": "I am a physicist by training and am currently studying Global Biogeochemical Cycles in the Earth System using Remote Sensing, Meteorological and other data sets based at the Max-Planck-Institute for Biogeochemistry, Jena, Germany.\r\nMy first commit to my first Julia package dates back to the year 2012 and since then I have authored and contributed to packages in the Julia Geodata and processing ecosystem, examples are NetCDF.jl, Zarr.jl, DiskArrays.jl, YAXArrays.jl EarthDataLab.jl and others. Some may know me under my github tag @meggart", "answers": []}, {"guid": "287d3d07-679d-51f6-875a-8785369e4287", "id": 19126, "code": "RWMFJM", "public_name": "Felix Cremer", "avatar": null, "biography": "Felix Cremer received his diploma in mathematics from the University of Leipzig in 2014. In 2016 he started his PhD study on time series analysis of hypertemporal Sentinel-1 radar data.\r\nHe is interested in the use of irregular time series tools on Synthetic Aperture Radar data to derive more robust information from these data sets.\r\nHe worked on the development of deforestation mapping algorithms and on flood mapping in the amazon using Sentinel-1 data.\r\nHe currently works at the Max-Planck-Institute for Biogeochemistry on the development of the JuliaDataCubes ecosystem in the scope of the NFDI4Earth project. The JuliaDataCubes organisation provides easy to use interfaces for the use of multi dimensional raster data", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/HYTKA3/", "id": 44375, "guid": "799d918c-ce0e-57b8-a693-a4dc7fe2a3a4", "date": "2024-07-10T15:20:00+02:00", "start": "15:20", "logo": null, "duration": "00:10", "room": "Function (4.1)", "slug": "juliacon2024-44375-pyramidscheme-jl-overviews-for-larger-than-memory-arrays", "title": "PyramidScheme.jl overviews for larger than memory arrays", "subtitle": "", "track": "Scientific Data Minisymposium", "type": "Lightning talk", "language": "en", "abstract": "PyramidScheme.jl is a package to easily and efficiently compute pyramids of an array which might be larger than RAM.\r\nPyramidScheme.jl provides the Pyramid struct to handle the layers of a pyramid.\r\nA pyramid is a collection of subarrays of a larger array so that every layer is half the size in every dimension so that pixels are combined to get to the next level of the pyramid.\r\nThese different layers allow to lazily give an overview of the data without having to load the whole array into memory.", "description": "PyramidScheme.jl allows to efficiently compute these Pyramids and to interactively plot them with the Makie.jl ecosystem. \r\nPyramidScheme.jl is based on the DiskArrays.jl for the handling of larger than memory arrays and on DiskArrayEngine.jl for the computations on these arrays. \r\nIn the future, we plan to be able to lazily define computations on DiskArrays so that these computations are only applied to the pixels that are currently used in the interactive plot.\r\n\r\nIn this talk we will show how to use PyramidScheme.jl to easily and efficiently compute the Pyramids from a given DiskArray and how to then interactively plot these Pyramids using Makie.jl.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "287d3d07-679d-51f6-875a-8785369e4287", "id": 19126, "code": "RWMFJM", "public_name": "Felix Cremer", "avatar": null, "biography": "Felix Cremer received his diploma in mathematics from the University of Leipzig in 2014. In 2016 he started his PhD study on time series analysis of hypertemporal Sentinel-1 radar data.\r\nHe is interested in the use of irregular time series tools on Synthetic Aperture Radar data to derive more robust information from these data sets.\r\nHe worked on the development of deforestation mapping algorithms and on flood mapping in the amazon using Sentinel-1 data.\r\nHe currently works at the Max-Planck-Institute for Biogeochemistry on the development of the JuliaDataCubes ecosystem in the scope of the NFDI4Earth project. The JuliaDataCubes organisation provides easy to use interfaces for the use of multi dimensional raster data", "answers": []}, {"guid": "29bfa32f-3455-5dc0-a6e9-1ae81be90a98", "id": 39226, "code": "YUUFT7", "public_name": "Fabian Gans", "avatar": null, "biography": "I am a physicist by training and am currently studying Global Biogeochemical Cycles in the Earth System using Remote Sensing, Meteorological and other data sets based at the Max-Planck-Institute for Biogeochemistry, Jena, Germany.\r\nMy first commit to my first Julia package dates back to the year 2012 and since then I have authored and contributed to packages in the Julia Geodata and processing ecosystem, examples are NetCDF.jl, Zarr.jl, DiskArrays.jl, YAXArrays.jl EarthDataLab.jl and others. Some may know me under my github tag @meggart", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/WPAKG8/", "id": 43135, "guid": "b06d3949-167a-554b-bed8-84220d78dc6a", "date": "2024-07-10T15:30:00+02:00", "start": "15:30", "logo": null, "duration": "00:10", "room": "Function (4.1)", "slug": "juliacon2024-43135-dimensionaldata-jl-named-dimensions-for-julia-data", "title": "DimensionalData.jl: named dimensions for julia data", "subtitle": "", "track": "Scientific Data Minisymposium", "type": "Lightning talk", "language": "en", "abstract": "Often our datasets represent physical space, time or named categories organized along some dimensions. Accessing data by these dimensions and values keeps us focused on the content, rather than how it is stored.\r\n\r\nDimensionalData.jl facilitates these workflows, with a focus on spatial data, abstractions for other packages to extend, and automated plotting.", "description": "DimensionalData.jl is not the first or only package to define arrays and datasets with named dimensions and lookups in julia - AxisArrays.jl, AxisKeys.jl, NamedDims.jl all succeed in this space. \r\n\r\nBut DD is unique in its focus on extensibility, and has spawned many objects inheriting its behaviors, largely across spatial sciences, such as in Rasters.jl, YAXArrays.jl and ClimateBase.jl. It's also generic enough to find uses in statistics, machine learning and image processing.\r\n\r\nAnother focus driven by its spatial use-cases is on being able to accurately represent a wide rang of lookup values and behaviors:\r\n- Points or Intervals\r\n- Regular or Irregular\r\n- Ordered or Unordered\r\n- Sampled or Categorical\r\n- Linear or Cyclic\r\n- grid-aligned or with transformed coordinates\r\n\r\nThis means it can represent the wide variety of CF compliant netcdf files, as well as affine transformed coordinates and projections of GDAL.\r\n\r\nDD also shines in ease of plotting, with extensive Plots.jl and Makie.jl recipes that automatically put the right values and labels in the right places.\r\n\r\nThis talk will demonstrate the basics of both how to use DimensionalData.jl, and for package developers - how to extend it.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "51379caf-78ba-57f6-aee8-0ccda8073f0c", "id": 3779, "code": "LVYSRF", "public_name": "Rafael Schouten", "avatar": "https://pretalx.com/media/avatars/avi_hstxXRX.JPG", "biography": "Rafael is an Ecologist at the Center for Macroecology, Climate and Evolution in Copenhagen. He works on process-based ecological models of species distributions, dispersal, threats and extinction, and contributes to a variety of geospatial, modelling and visualization packages.\r\n\r\n/~https://github.com/rafaqz", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/A8GMVV/", "id": 44415, "guid": "fdfaf6f7-9916-5655-bc6b-5762ca27a884", "date": "2024-07-10T15:40:00+02:00", "start": "15:40", "logo": null, "duration": "00:10", "room": "Function (4.1)", "slug": "juliacon2024-44415-rasters-jl-raster-data-and-gis-tools-for-julia", "title": "Rasters.jl: raster data and GIS tools for julia", "subtitle": "", "track": "Scientific Data Minisymposium", "type": "Lightning talk", "language": "en", "abstract": "Rasters.jl extends DimensionalData.jl for working with geospatial rasters. It abstracts over many kinds of multi-dimensional arrays stored in memory, on disk or in the cloud - from sources like GDAL and netcdf, to present spatial raster data as regular julia `AbstractArray`s, but facilitate easy spatially aware indexing, manipulation, plotting and writing.\r\n\r\nThis talk will cover basic workflows and features for raster data manipulation with Rasters.jl.", "description": "Rasters.lj adds missing-value handling, tracking of coordinate reference system (crs), lazy operations on larger-than-memory arrays using DiskArrays.jl, and ability to select and plot rasters with rotated or skewed coordinates - to a base of named dimension indexing from DimensionalData.jl.\r\n\r\nScripts and packages built on Rasters.jl can treat Raster, RasterStack, and RasterSeries as black boxes. They may hold unopened GeoTiff or NetCDF filenames or urls, Arrays in memory, or CuArrays on the GPU - but they will all behave in essentially the same way - allowing spatial indexing, manipulation and plotting.\r\n\r\nRasters.jl also provides a range of common GIS tools for raster manipulation:\r\n\r\n`aggregate: aggregate data by the same or different amounts for each axis.\r\n`mosaic`: join rasters covering different extents into a single array or file.\r\n`crop`: shrink objects to specific dimension sizes or the extent of another object.\r\n`extend`: extend objects to specific dimension sizes or the extent of another object.\r\n`trim`: trims areas of missing values for arrays and across stack layers.\r\n`resample`: resample data to a different size and projection, or snap to another object.\r\n`rasterize`: rasterize GeoInterface compatible points and geometries.\r\n`extract`: extract values from points or geometries.\r\n`zonal`: calculate zonal statistics for an object masked by geometries.\r\n`mask`: mask an object by a polygon or Raster along X/Y, or other dimensions.\r\n\r\nWhile less mature than similar packages in R or python, Rasters.jl already has many ease of use and performance advantages. \r\n\r\nOperations like rasterization and masking are written in native Julia, so they are fast and work on geometry objects sourced from any packages that implement the GeoInteraface.jl interface. \r\n\r\nDiskArrays integration means views, permutations, reductions and broadcasts can be performed over larger-than-memory arrays, only being applied when `getindex` is finally called for a specific region. \r\n\r\nDespite the additional behaviours and geospatial metadata they hold, `Raster` objects are also just regular `AbstractArray`s with standard `Array` behavior. They work with most base methods, and across much of the Julia ecosystem. In most cases they retain their spatial metadata and the ability to be indexed by name, spatial coordinates, time or any other dimensions they may have, and will always plot appropriately in Plots.jl or Makie.jl.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "51379caf-78ba-57f6-aee8-0ccda8073f0c", "id": 3779, "code": "LVYSRF", "public_name": "Rafael Schouten", "avatar": "https://pretalx.com/media/avatars/avi_hstxXRX.JPG", "biography": "Rafael is an Ecologist at the Center for Macroecology, Climate and Evolution in Copenhagen. He works on process-based ecological models of species distributions, dispersal, threats and extinction, and contributes to a variety of geospatial, modelling and visualization packages.\r\n\r\n/~https://github.com/rafaqz", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/YFQVDK/", "id": 44377, "guid": "fada6374-acac-5a55-bbe1-179f4ba099fb", "date": "2024-07-10T15:50:00+02:00", "start": "15:50", "logo": null, "duration": "00:10", "room": "Function (4.1)", "slug": "juliacon2024-44377-machine-learning-on-data-cubes-prospects-and-challenges", "title": "Machine Learning on Data Cubes: Prospects and Challenges", "subtitle": "", "track": "Scientific Data Minisymposium", "type": "Lightning talk", "language": "en", "abstract": "This presentation delves into the application of machine learning (ML) techniques on high dimensional Earth system data. Data cubes, which organize data in multidimensional arrays, are increasingly used for storing Earth observation datasets. We explore Julia's strengths in processing large-scale, complex datasets and showcase practical examples of ML-driven analysis for climate patterns and environmental monitoring. Finally, the talk will address existing challenges and potential solutions.", "description": "We aim to provide a detailed exploration of the intersection between multidimensional data and machine learning. The talk is structured as follows:\r\n1. Introduction to multidimensional data.\r\n2. Machine learning techniques for data cubes: examples illustrating the process of manipulating and analyzing data cubes in ML contexts.\r\n3. Practical application and case studies.\r\n4. Tools in machine learning and data cubes: overview of the current state of tools and technologies available for working with data cubes and ML.\r\n5. Future opportunities and challenges.\r\n\r\nThe presentation aims to provide the audience with a comprehensive understanding of how data cubes are structured, manipulated, and analyzed in a machine learning context, and to highlight the opportunities and challenges in the interplay of machine learning and Earth observation data.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "a8b2dd8d-3e80-5c46-90a5-64b401e7b631", "id": 10403, "code": "NGLZHC", "public_name": "Francesco Martinuzzi", "avatar": "https://pretalx.com/media/avatars/profilepiczoom_X7T6rib.jpg", "biography": "I am currently pursuing a PhD in Physics and Earth Sciences at Leipzig University, Germany, and Valencia, Spain, as a member of the ELLIS PhD program. My research focuses on the application of machine learning in Earth systems. I am part of the team at the Remote Sensing Center for Earth System Research (RSC4Earth), working under the supervision of Prof. Miguel D. Mahecha and Dr. Karin Mora. In addition, I have an affiliation with the Center for Scalable Data Analytics and Artificial Intelligence (ScaDS.AI).", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/TGTFEE/", "id": 44517, "guid": "c6b5bccd-22d3-5d31-979b-dfbbc1c0300f", "date": "2024-07-10T16:00:00+02:00", "start": "16:00", "logo": null, "duration": "00:30", "room": "Function (4.1)", "slug": "juliacon2024-44517-zed-the-potential-power-of-shared-schema-in-different-formats", "title": "Zed: The Potential Power of Shared Schema In Different Formats", "subtitle": "", "track": "Scientific Data Minisymposium", "type": "Talk", "language": "en", "abstract": "Exploring the zed data schema language and it's applications in Julia.", "description": "The zed (/~https://github.com/brimdata/zed) data project provides an interesting foundational aim: what if there was a common data schema language that could be used across a variety of data formats, i.e. json, row-based binary protocols (avro, flatbuffers, protobuf), column-based binary protocols (arrow, parquet). \r\n\r\nThe multitude of data formats in the era of \"big data\" has led to some great innovation and enabled efficiencies in storage and transfer. But in doing so, we've created another problem: getting all these data formats to \"talk\" with each other.\r\n\r\nIn this talk, I explore the fundamentals of the zed data schema language, how it applies to the various supported formats, and how we can leverage these uniquely in Julia to create a consistent data \"language\", regardless of individual use-case requirements.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "79bb8667-628f-5d5b-bb2c-aeddb458d581", "id": 1166, "code": "MQ3SJP", "public_name": "Jacob Quinn", "avatar": "https://pretalx.com/media/avatars/profile_QHEEy9o.jpeg", "biography": "Worked with Julia for a long time. Involved in many \"fundamental\" packages across the ecosystem, web or data related.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/V8VGK9/", "id": 44481, "guid": "7a12011d-0131-5e30-a29e-f5612fd50d5b", "date": "2024-07-10T16:30:00+02:00", "start": "16:30", "logo": null, "duration": "00:10", "room": "Function (4.1)", "slug": "juliacon2024-44481-parallelksvd-jl-a-case-study-in-performance-optimization-", "title": "ParallelKSVD.jl: A case study in performance optimization.", "subtitle": "", "track": "Scientific Data Minisymposium", "type": "Lightning talk", "language": "en", "abstract": "We present `ParallelKSVD.jl`, an extremely fast implementation of the K-SVD algorithm, including extensive single-core optimizations, shared-state multithreading, pipelined GPU offloading, and an optional distributed executor. With this implementation, we are able to outperform existing numpy-based implementations by ~100x and scale to datasets with millions of samples.", "description": "The K-SVD algorithm has gained recent attention in the application of dictionary learning for large-scale transformer models, see e.g. Bricken 2023. However, as it stands, it has been deemed computationally infeasible when applied to large datasets with millions (or billions) of samples.\r\nAnd indeed, current implementations seem not up to the task; the implementation available as `sklearn.decompositions.MiniBatchDictionaryLearning`, which extensively leverages `numpy` and `joblib`, takes over 3 minutes for ten iterations on a dataset with ten thousand elements (despite multi-threading).\r\n\r\nFor this reason, we present [`KSVD.jl`](/~https://github.com/RomeoV/KSVD.jl), an implementation of the K-SVD algorithm in Julia.\r\nThis implementation outperforms sklearn’s implementation by about $50\\times$ when computing the same problem, can gain an additional $2\\times$ by reducing the precision from `Float64` to `Float32`, and can be scaled across many compute nodes with almost linear speedup improvements.\r\nThat means if, for example, eight compute nodes are available, we can expect a speedup of $(50 \\cdot 2 \\cdot 8)\\times = 800\\times$ for moderate to large datasets.\r\nFurther, `KSVD.jl` also employs several algorithmic modifications that, to the author’s knowledge, lead to faster convergence given the same number of compute operations.\r\n\r\nIn this presentation, we will present a breakdown of the optimizations and their effects, as well as guidance on the performance optimization workflow in Julia. In particular we will treat the K-SVD algorithm as a case-study to discuss several different aspects of performance optimization and their applicability in Julia. Specifically, this will include\r\n- careful adjustments to the execution order and small algorithmic adjustments,\r\n- single-core optimizations like aggressive buffer preallocations, exploiting cache locality, improving the memory layout, and reducing memory movements,\r\n- careful multi-threading using small batch updates with frequent cross-communication implemented with Julia’s efficient task scheduling,\r\n- a custom multi-threaded dense-sparse matrix multiplication implementation ([`ThreadedDenseSparseMul.jl`](/~https://github.com/RomeoV/ThreadedDenseSparseMul.jl)),\r\n- pipelined GPU-offloading for large matrix multiplications (currently unused in the fastest version),\r\n- a custom distributed executor allowing to spread the computation over many compute nodes.\r\n\r\nWe hope that the insights we can share will empower others to improve and optimize their code when applicable, and provide some guidelines about the step-by-step breakdown of the process.\r\n\r\nThe package is available at .", "recording_license": "", "do_not_record": false, "persons": [{"guid": "70bb7547-3c92-5048-b57f-6bcd79c8ab43", "id": 39999, "code": "XN93M7", "public_name": "Romeo Valentin", "avatar": "https://pretalx.com/media/avatars/nice_photo_2_compressed_d7bNI9p.jpg", "biography": "- PhD Student at the Stanford Intelligent Systems Lab (SISL), developing certification guidelines for employing data-driven algorithms in safety-critical applications.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/7LYF7W/", "id": 43470, "guid": "d705f6f4-e9f8-58f7-886d-b33883805b2e", "date": "2024-07-10T16:50:00+02:00", "start": "16:50", "logo": null, "duration": "00:10", "room": "Function (4.1)", "slug": "juliacon2024-43470-julia-s-use-in-nuclear-physics-data-analysis-study-of-a-case", "title": "Julia's use in nuclear physics data analysis: study of a case", "subtitle": "", "track": "Scientific Data Minisymposium", "type": "Lightning talk", "language": "en", "abstract": "A study of a case of Julia's use for data analysis in the nuclear physics field\r\nwill be presented. Binary data, coming from a nuclear fusion-fission reaction\r\nstudy, including signals from about 200 detectors, amounted to 20-30\r\nTB. Julia's capability of seamless calling C-libraries, multi-processing\r\nschemes and efficient data processing allowed us to analyze this dataset with an\r\nordinary off-the-shelf computer in a reasonable time, without the need to employ\r\nHPC.", "description": "In the field of physics, it is high-energy particle physics that is commonly\r\nassociated with top high-performance computing. CERN and LHC are one of the\r\nstaple marks of this branch. But high performance is needed in other areas as\r\nwell and is not limited to supercomputers only. The older brother of particle\r\nphysics, nuclear physics, takes advantage of recent developments as well. If we\r\ntake a look at state-of-the-art computers of the mid 90's today's laptops have\r\nsimilar computational performance. What needed a whole cluster of computers 30\r\nyears ago, now can be achieved with a single cheap machine. This, along with the\r\ndevelopment of detectors, detector setups and acquisition systems, allows for\r\nplanning larger experiments, while keeping the similar size of scientific groups\r\ncounting from a few persons up to tens. But there is a catch here: the\r\nprogramming of the HPC machines is and was performed by whole devoted teams. In\r\nthe nuclear physics field, often the whole data analysis is done by a single\r\nscientist or a very small group. Nevertheless, the needs are similar, including,\r\nfirst of all, a programming language capable of fast data processing to analyze\r\nrelatively large volumes of data. On the other hand, another set of tools is\r\nneeded for the data analysis, including common operations like plotting,\r\nhistogramming, fitting, or data manipulation. And this is very often,\r\naccomplished in an exploratory data analysis approach, where the final method or\r\nexpected results are not clearly stated. The typical way to achieve that is to\r\nuse two languages, one for efficient data processing (C/C++), and preliminary\r\nanalysis, and the second for convenient, dynamic analysis and visualization\r\n(Python or specialized programs).\r\n\r\nJulia ideally fits into this scheme with its high performance, while keeping\r\ndynamic and simplicity, effectively removing the need to master two languages. In a\r\none-person analysis scenario, this is especially welcome. An important feature,\r\nneeded to unlock the full potential of the modern, multi-core machines, and\r\naccomplish efficient data processing, are easily accessible multi-processing\r\ncapabilities present in Julia. The whole analysis code can be consistently\r\nwritten in one language, from the raw file interpretation to the publication\r\nfigures, which makes it easy to maintain, reuse and train new members of the\r\ngroup.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "1b87efd8-1b50-54a5-8a46-78a7d5a32201", "id": 39259, "code": "Y7K9ZE", "public_name": "Krzysztof Miernik", "avatar": "https://pretalx.com/media/avatars/kmhat_WF9DCa6.jpg", "biography": "I'm a professor at the University of Warsaw, Poland, working in the field of\r\nexperimental nuclear physics. Since 2020 Julia has been my main programming\r\ntool, I use it for all kinds of work, from simple calculations, through the\r\npreparation of figures, communication with laboratory equipment and detectors,\r\nto analysis of relatively large datasets.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/RXG3W3/", "id": 44172, "guid": "8b50d7b9-b50f-5ae5-92dc-07af835e3beb", "date": "2024-07-10T17:00:00+02:00", "start": "17:00", "logo": null, "duration": "00:30", "room": "Function (4.1)", "slug": "juliacon2024-44172-unroot-jl-data-i-o-for-high-energy-physics-in-julia", "title": "UnROOT.jl - Data I/O for High-Energy Physics in Julia", "subtitle": "", "track": "Scientific Data Minisymposium", "type": "Talk", "language": "en", "abstract": "We present the foundational package for handling High-energy physics (HEP) data stored in .root files, which will enable physicists to use Julia for physics tasks in HEP. Traditionally, HEP software consists of mostly C++ since 2000s, but as the analysis computation becomes more complex, the two-language problem in the physics data analysis grows wider. UnROOT.jl improves quality of life by providing performant reading & writing to support fast \"for-loop\" style data analysis with ease.", "description": "We present package that is at the core of high-performance high-energy physics data analysis, UnROOT.jl, a pure Julia ROOT file I/O package that is optimized for speed and ergonomics that can solve the two-language problem in High-energy physics data analysis.\r\n\r\nWe discuss what affects performance in Julia, the challenges, and their solutions during the development of UnROOT.jl. We highlight type stability as a challenge and discuss its implication whenever any \u201ccompilation\u201d happens (incl. Numba, Jax, C++) as well as Julia\u2019s specific ones.\r\n\r\nWe also highlight the our quick adoption of the upcoming RNTuple file format/specification in ROOT and ease of implementation in Julia, including reading and writing, that will enable physicists to drop-in Julia to replace any part of a traditional data pipeline.\r\n\r\nFinally, demonstrate the performance and \u201ceasy to use\u201d claim by comparing UnROOT.jl against popular alternatives (RDataFrame, Uproot, etc.) in medium-size realistic benchmarks, comparing both performance and code complexity.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "9417e76e-ade4-56db-ad4e-ded6f1a4bc86", "id": 39805, "code": "BX3BZK", "public_name": "Jerry Ling", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/UQWX7N/", "id": 44263, "guid": "69d6e45d-2241-5898-978f-4d92b3f07a79", "date": "2024-07-10T20:00:00+02:00", "start": "20:00", "logo": null, "duration": "00:30", "room": "Function (4.1)", "slug": "juliacon2024-44263-a-computational-environment-for-simulations-in-systems-biology", "title": "A Computational Environment for Simulations in Systems Biology", "subtitle": "", "track": "Posters", "type": "Poster", "language": "en", "abstract": "The poster studies the optimal distributed architecture to run simulations with Julia-based models in the field of Systems Biology. Julia parallel framework of distributing the code across remote workers is applied to different cluster configurations: managed by HTCondor and Kubernetes through Julia interfaces ClusterManagers.jl and K8ClusterManagers.jl. The poster summarizes InSysBio experience and presents pros and cons of building such computational environment for modeling and simulations.", "description": "One of the main computational challenges of Systems Biology and Quantitative Systems Pharmacology is solving large differential equation systems with thousands sets of input parameters. The task becomes even more challenging when multiple therapies and clinical conditions are being modeled. The software and hardware environment to address this problem and speed-up the simulations is of utmost importance for the field. The poster proposes several approaches to address this problem in Julia. Julia ability to easily parallelize the computations and distribute workloads across workers is applied to the following architectures: \r\n\r\n1.\tOn-site distributed computational environment managed by HTCondor through ClusterManagers.jl interface.\r\n2.\tExtension of the local computational resources by adding cloud based compute nodes. \r\n3.\tFully cloud-based environment managed by Kubernetes through K8ClusterManager.jl package. \r\n\r\nThe advantages and limitations of the studied approaches are presented in the poster.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "3c480b61-3eba-51a8-ac7f-0abfff417171", "id": 39870, "code": "DMYTV9", "public_name": "Ivan Borisov", "avatar": "https://pretalx.com/media/avatars/Ivan_d60dwA3.jpg", "biography": "Ivan earned his Master\u2019s degree in Mechanical Engineering from the Department of Mathematics and Mechanics of Lomonosov Moscow State University. Ivan started his career at IBM East Europe/Asia providing customers with technical support and \u00abproof of concept\u00bb implementation of IBM software products. In 2017, Ivan joined InSysBio as mathematician and software developer, where he continues to work until present as senior software developer. Ivan participates in the development of key InSysBio software tools for simulations and analysis of QSP models, namely Julia-based package for simulations and parameters estimation HetaSimulator.jl, practical identifiability toolkit LikelihoodProfiler.jl, packages for Virtual Patients generation, etc. Beyond software development, Ivan is engaged in the enhancement of mathematical and computational methods for QSP modeling.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/R8VRMH/", "id": 44334, "guid": "f54ca0f8-651d-57d9-b13c-61021cb37efa", "date": "2024-07-10T20:30:00+02:00", "start": "20:30", "logo": null, "duration": "00:30", "room": "Function (4.1)", "slug": "juliacon2024-44334-plantmodules-jl-a-package-for-modular-plant-growth-modeling", "title": "PlantModules.jl: a package for modular plant growth modeling", "subtitle": "", "track": "Posters", "type": "Poster", "language": "en", "abstract": "We introduce PlantModules.jl, a package for modeling plant hydraulics in a modular way. Its purpose is to allow the user to define, run and visualize plant models based on an input structure of any desired complexity and scale, from cell to fields of plants. Its base functionality allows for the simulation of water flows based on water potentials in a tree with hundreds of branches in just a few dozen lines of code, and a focus on extensibility allows for easily adding other processes.", "description": "A rising world population and changing environmental conditions have created a need for an increasing food supply using the same amount of agricultural area and under often more difficult growing conditions. A better understanding of plant growth has become essential in achieving this, allowing, among others, the targeted breeding of plants with greater resistance to these changing conditions. Plant models, in turn, have become an indispensable tool for steering plant growth.\r\n\r\nThe state-of-the-art in plant modeling are Functional-Structural Plant Models (FSPMs). These models consider both functional processes such as photosynthesis, water flow, and carbon allocation, as well as the structure of the plant, usually represented as a network of repeating elementary units such as leaves, root segments, or cells. Our package is intended to serve as an addition to the FSPM modeling framework in Julia. Among these, the Virtual Plant Laboratory is a notable collection of FSPM-related Julia packages and already includes a wide range of functionalities, such as graph rewriting for simulating the growth of the structure of a plant through time, visualization functions, and models for calculating certain plant biophysical processes given the weather conditions.\r\n\r\nWhat is not yet available is a way to accurately model functional processes over time using sets of differential equations. This package provides this functionality by interfacing with Julia's modeling ecosystem, specifically ModelingToolkit.jl (MTK). As this package aims to maximize ease of extensibility, the intuitive syntax of this modeling package is ideal as it allows users to easily implement their own functional processes as MTK systems and provide high-performance models. Writing out a FSPM in this modeling language by hand would be incredibly time-consuming, since it can consist of over thousands of elementary units that all need to be created and connected. PlantModules.jl automates this process, allowing for modeling plants whose structure consists of many elements or even changes over time.\r\n\r\nThe final contribution of the package is the inclusion of a simple, yet powerful implementation of hydraulics as a functional process. It describes the growth of plant parts due to turgor pressure, which results from water flows in the plant driven by water potentials. This process is often overlooked in favor of carbon-related processes, yet it is also an essential driver of growth and is easily coupled to carbon models. Another advantage of the provided hydraulics implementation is that it works on all spatial scales and can be used in multi-scale models. This type of model, which simulates a system on multiple spatial scales simultaneously, can be very advantageous for modeling plant growth and is also supported by the package.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "2d9a5132-0990-5bb8-b4e2-3125b4c18502", "id": 39760, "code": "KQZHD7", "public_name": "Bram Spanoghe", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/FJRZL7/", "id": 44903, "guid": "09888cb2-90d1-5388-8367-eb904ea7a536", "date": "2024-07-10T21:00:00+02:00", "start": "21:00", "logo": null, "duration": "00:30", "room": "Function (4.1)", "slug": "juliacon2024-44903-seamless-reproducibility-of-complex-simulation-workflows", "title": "Seamless Reproducibility of Complex Simulation Workflows", "subtitle": "", "track": "Posters", "type": "Poster", "language": "en", "abstract": "Modern model-based design and decision support in engineering climate change response relies on complex simulation workflows, orchestrating research software in diverse programming languages and compute paradigms. Reproducibility and reuse is challenging due to complex installations, and workflow reproducibility is not seamlessly inherited. We analyze the Time to First Reproduction (TTFR) in such workflows using the Julia ecosystem, drawing insights from two projects in our research group.", "description": "In the field of engineering climate change response, there is a growing interest in model-based approaches to address complex challenges. For instance, models for simulating shallow free surface flow aid in predicting flooding, landslides, and avalanches for early warning systems and hazard mitigation. Modern methods for model-based design and decision support rely heavily on computational techniques and models implemented within research software, which have been developed over decades. In our research group, we also develop computational methods and models for diverse applications including landslides, subsequently employing them for tasks like sensitivity analysis, model selection, digital twins, uncertainty quantification, and decision support. In these scenarios, integrating and orchestrating existing research software assets into reusable simulation workflows proves to be a practical choice, preventing redundant efforts. Such reproducible and reusable workflows enable transparency, verification and validation, peer review, collaboration, adaptability to new methods, and benchmarking.\r\n\r\nAchieving reproducibility and reusability in complex computational model-based workflows poses notable challenges, considering the varied programming languages, package managers, and computing platforms employed in research software development. Furthermore, extension of workflow reproducibility from that of individual software assets is not assured, and cumbersome installation procedures often dissuade researchers from experimenting with well-crafted research software. The question then arises: How can we achieve seamless reproducibility of complex model-based simulation workflows involving heterogeneous research software?\r\n\r\nWe try to answer this question by considering two research software projects within our group:\r\n1. PSimPy (https://pypi.org/project/psimpy/) - A Python/R package to orchestrate Gaussian Process integrated Sensitivity Analyses, Uncertainty Quantification & Bayesian Model Calibration.\r\n2. SWEBench - An Emulator Framework to facilitate Benchmarking of Forward Solvers for Thin-film Mass Transport over Complex Geometries.\r\n\r\nThe Julia ecosystem provides an interesting solution to workflow reproducibility that we will analyze in detail. This work particularly emphasizes the Time to First Reproduction (TTFR), a factor that significantly impacts the usability and adoption of software in a research setting. Julia ensures reproducible compute environments through its built-in package manager. Furthermore, its package ecosystem seamlessly enables the installation and utilization of libraries and software from various sources, including Python, R, and pre-compiled binaries via BinaryBuilder. In comparison to individually using other modern solutions, like conda and docker, utilizing the Julia ecosystem allows us to greatly reduce TTFR along with developer and maintenance effort.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "fb966866-e99b-58b0-bae4-39ba0a373cc0", "id": 40208, "code": "HE8TTK", "public_name": "Alan Correa", "avatar": "https://pretalx.com/media/avatars/rsz_230904-mbd-1034-23_bUzqQVb.jpg", "biography": "A PhD candidate at Chair of Methods for Model-based Development in Computational Engineering at RWTH Aachen University. I am working on advancing Forward Solvers for Thin Film Free Surface Flows over Complex Geometry. This project involves working at the intersection of Numerical Methods for solving thickness-integrated Shallow Water Equations (Surface PDEs), Computational Geometry, and Automatic Differentiation. I'm also a strong proponent of Open Science and Open Source Research Software.", "answers": []}], "links": [], "attachments": [], "answers": []}], "While Loop (4.2)": [{"url": "https://pretalx.com/juliacon2024/talk/BSKBUG/", "id": 44165, "guid": "d41ede2b-8a5c-5c4d-9d49-416bcb6b6a24", "date": "2024-07-10T11:00:00+02:00", "start": "11:00", "logo": null, "duration": "00:30", "room": "While Loop (4.2)", "slug": "juliacon2024-44165-newcomers-experiences-why-do-we-need-a-stricter-julia-mode-", "title": "Newcomers experiences: Why do we need a stricter Julia mode\ud83e\uddd0", "subtitle": "", "track": "Community", "type": "Talk", "language": "en", "abstract": "By design Julia was designed to be familiar for people coming from MATLAB or python. This is great to attract people, however we need guardrails for people that want to develop performant packages. \r\n\r\nThis will be a series of examples of code from colleagues, how to make them more Julian and a proposal for the language to help these newcomers to write fast and extensible code.", "description": "People coming from MATLAB and python might find the julia language sort of familiar at first glance, but will not take long until they stumble upon problems stemming from bad habits coming from these other programming languages. \r\n\r\nOne example of this is this recent talk from JuliaCon Local Eindhoven https://youtu.be/RUJFd-rEa0k?si=X4FHouP7ne4Ocv4U \r\n\r\nThese bad habits are not exclusive of people coming from interpreted languages, but also from C and Java because people tend to over-restrict their code.\r\n\r\nSometimes both people struggle with the type system because they are not use to it and need better guardrails in order to avoid problems.\r\n\r\nOn top of the survey I will propose a few ideas to change the tools and/or the language to help new people coming to julia either seasons developers or newbies.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "466b9132-2798-5e12-8e37-a535b5f6867d", "id": 4125, "code": "QCZCDE", "public_name": "Jorge Alberto Vieyra Salas", "avatar": null, "biography": "Jorge Vieyra", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/MG8LZV/", "id": 44249, "guid": "d3846ca6-43a9-59d0-8b40-142ad3b72530", "date": "2024-07-10T11:30:00+02:00", "start": "11:30", "logo": null, "duration": "00:30", "room": "While Loop (4.2)", "slug": "juliacon2024-44249-julia-powered-computerized-cognitive-rehabilitation-for-children", "title": "Julia-Powered Computerized Cognitive Rehabilitation for Children", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "Julia-Powered Computerized Cognitive Rehabilitation for Children\r\nCognitive Rehabilitation Therapy refers to set of treatments that help improve a child\u2019s ability to think after a brain injury or illness that affects the brain that aim to improve a child's ability to perform a certain cognitive tasks by retraining previously learned skills and teaching compensatory strategies after overcoming a certain Brain injury or disability.", "description": "As it is important , many Children suffer from brain disabilities and after getting over it , are getting difficulty in performing their cognitive functions in their Schools or any of the environment they are present into. Which would surely affect their lives.\r\nThe purpose of this study was to understand Children are not able to perform their cognitive functions like Attention, Memory, Language, Social Recognition, Perception & Thinking using Julia Packages. \r\nFor the above study we need data from various sources. This data includes child\u2019s memory dataset , Attention span datasets, Language skills datasets, IQ level test dataset, problem-solving datasets etc . We had collected data from various sources and implemented using Julia Packages such as DataFrames.jl which will tabulate our data, MLJ.jl to make predictions on our data and PyPlot.jl to plot the results and the other metrics.\r\nOUTLINE:\r\nIntroduction to Cognitive Rehabilitation (2minutes)\r\nImportance of Cognitive Functions in Children (2minutes)\r\nJulia for Cognitive analytics (2minutes)\r\nApproaches and models for Cognitive Rehabilitation(7minutes)\r\nDemonstrating a basic forecasting model (5minutes)\r\nResults and Discussions (5minutes)\r\nConclusion (2minutes)\r\nQuestion and Answer (5minutes)", "recording_license": "", "do_not_record": false, "persons": [{"guid": "79140605-932d-589d-bfed-68deb913b082", "id": 39791, "code": "WDHNRP", "public_name": "Radhika Shidling Bhangi", "avatar": "https://pretalx.com/media/avatars/36d149a655828185cf0467ad10b7dc08_4Xs5zTK.jpg", "biography": "I am Radhika Bhangi", "answers": []}, {"guid": "a79be12c-86d4-521e-926e-0f7557e87b84", "id": 39790, "code": "ZLVE9A", "public_name": "Aditi Raviraj Burse", "avatar": "https://pretalx.com/media/avatars/WhatsApp_Image_2024-01-31_at_4.02.50_PM_cVTnEVq.jpeg", "biography": "I am Aditi Raviraj Burse", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/PSNXYK/", "id": 43482, "guid": "d75ae0b9-7ddc-581d-8abe-79da17b28267", "date": "2024-07-10T12:00:00+02:00", "start": "12:00", "logo": null, "duration": "00:30", "room": "While Loop (4.2)", "slug": "juliacon2024-43482-macromodelling-jl-developing-and-solving-dsge-models", "title": "MacroModelling.jl - developing and solving DSGE models", "subtitle": "", "track": "Economics", "type": "Talk", "language": "en", "abstract": "The goal of MacroModelling.jl is to reduce coding time and speed up model development by providing functions for working with discrete-time DSGE models.\r\nThese kinds of models describe the behavior of a macroeconomy and are particularly suited for counterfactual analysis (economic policy evaluation) and exploring / quantifying specific mechanisms (academic research). Due to the complexity of these models, efficient numerical tools are required, as analytical solutions are often unavailable.", "description": "MacroModelling.jl is a Julia package for developing and solving dynamic stochastic general equilibrium (DSGE) models.\r\nThe package serves as a tool for handling the complexities involved when working with these kind of models, such as forward-looking expectations, nonlinearity, and high dimensionality.\r\nThe user-friendly syntax, automatic variable declaration, and effective steady state solver facilitate fast prototyping of models. Furthermore, the package allows the user to work with nonlinear model solutions (up to third order (pruned) perturbation) and estimate the model using gradient based samplers (e.g. NUTS, or HMC). Currently, DifferentiableStateSpaceModels.jl is the only other package providing functionality to estimate using gradient based samplers but the use is limited to models with an analytical solution of the non stochastic steady state (NSSS). Larger models tend to not have an analytical solution of the NSSS and MacroModelling.jl can also use gradient based sampler in this case. The target audience for the package includes central bankers, regulators, graduate students, and others working in academia with an interest in DSGE modelling.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "27a25d92-1a75-5574-ac47-aa2af9a7d7d8", "id": 39271, "code": "GVZQQX", "public_name": "Thore Kockerols", "avatar": null, "biography": "I am a macroeconomist by training with experience in central banking and academic research.\r\n\r\nCurrently seconded to the European Central Bank, I previously worked as a senior economist in the modelling unit at Norges Bank.\r\n\r\nI hold a PhD in Economics (2018) from the Universit\u00e9 Paris 1 Pantheon-Sorbonne, and my research interests include macroeconomic modelling, and macro-financial linkages.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/RVNXNE/", "id": 43407, "guid": "738c3b75-5865-5053-abac-6c0b09ffba93", "date": "2024-07-10T14:00:00+02:00", "start": "14:00", "logo": null, "duration": "00:30", "room": "While Loop (4.2)", "slug": "juliacon2024-43407-developing-a-satellite-telemetry-analysis-system", "title": "Developing a Satellite Telemetry Analysis System", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "This talk presents how we developed a general, adaptable satellite telemetry analysis system using the Julia language and its ecosystem. The system can fetch the telemetry packets from the mission database, convert the desired telemetry variables, and output a data frame with the information. From here, we can use all the power in Julia language to perform the complicated analysis often required to verify the attitude and orbit control subsystem health.", "description": "In the previous JuliaCon, we presented how we use Julia to develop our next-generation satellites' attitude and orbit control subsystem (AOCS) at the National Institute for Space Research (INPE). During the development, we identified a critical area in which Julia could provide an excellent contribution: telemetry analysis.\r\n\r\nTelemetry is all the data a satellite sends to the ground, encompassing the information we have to verify the system's health. We also use the same data during the satellite integration when we need to perform several analyses to check if all algorithms and functionalities work correctly.\r\n\r\nThis kind of analysis is particularly challenging for the AOCS. Given the bandwidth limitation, we can only provide a minimal set of parameters to be sent in the telemetry packet. Hence, we must perform many transformations to rebuild all the AOCS internal states, especially during unexpected events. For example, the AOCS telemetry frame usually contains only the satellite position in the inertial reference frame. Thus, to obtain its geodetic position (latitude, longitude, and altitude), we need to convert the inertial frame to an Earth-fixed frame and then transform it from the position vector to geodetic coordinates.\r\n\r\nEvery mission has its telemetry analysis system. However, those environments are usually built for fast telemetry checking, targeting the satellite operators during the daily control routines. Those environments often lack a proper programming platform to perform telemetry data transformation.\r\n\r\nGiven the above discussion, we decided to build a general, adaptable telemetry analysis system for the Julia language. The ecosystem defines a set of general API functions to build the interface with any telemetry analysis system. First, we must define a telemetry source, stating how to obtain and unpack the packets. Afterwards, we define the telemetry database, where all the existing variables are registered, including the transfer functions between the bits in the frame and the engineering values. Given those definitions, the system is capable of fetching and converting the desired telemetry to a DataFrame, where we can use all the power in Julia language to perform any analysis we want.\r\n\r\nFrom now on, we expect to use this system in all of INPE's missions, including the tasks in the development stage. System validation happened for the Amazonia-1 mission, which was successfully launched in February 2021, where we implemented the interface with the current telemetry analysis system, SATCS. In this task, Julia proved to be an outstanding alternative. We needed to convert a proprietary language for the transfer functions to Julia code, where we extensively used Julia's metaprogramming capabilities, leading to a high-speed system to convert the telemetry information. After implementing the interface, we could easily access the satellite's telemetry and perform a myriad of analyses. In fact, we quickly designed an automatic telemetry analysis system, running every day, to spot common problems and alert the mission specialists by e-mail if anything is identified.\r\n\r\nThis talk will detail how the system was designed and important study cases obtained from the Amazonia-1 satellite telemetry analysis, stating how the capabilities available in Julia language and its ecosystem were paramount in the development.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "50d815bc-74d3-54a1-be38-5d99ab3eeaa0", "id": 10877, "code": "8AFQPZ", "public_name": "Ronan Arraes Jardim Chagas", "avatar": "https://pretalx.com/media/avatars/IMG_2500_-_quadrada_jZ2XRIY.jpg", "biography": "Since 2013, Ronan Arraes Jardim Chagas has been with the Space Systems Division of the Instituto Nacional de Pesquisas Espaciais (INPE). As his most significant accomplishment, he was the Mission Architect and the responsible technician of the attitude and orbit control subsystem (AOCS) of the Brazilian Satellite Amazonia-1, successfully launched in February 2021.\r\n\r\nHe has been working with Control Systems and Signal Processing for 15 years. During this time, he was involved in many projects related to those areas. He successfully embedded Kalman filters (Extended and Unscented) in many autonomous systems and developed state-of-art signal processing algorithms to perform estimation in distributed sensor networks.\r\n\r\nHe conducts several research projects at INPE. Those projects include artificial intelligence and advanced control techniques applied to the AOCS, space mission design optimization, advanced signal processing, and orbit analysis.\r\n\r\nHe is also a Julia language enthusiast. He has used it daily since 2013 to perform many activities related to his work. As his most significant project with this language, he developed a complete AOCS simulator to test and verify this subsystem. The simulation achieved outstanding performance and accuracy, given the orbital data collected from the satellite Amazonia-1.\r\n\r\nHe is the creator and maintainer of some important packages of the Julia language ecosystem: ReferenceFrameRotations.jl, SatelliteToolbox.jl, PrettyTables.jl, and others.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/9D3TTS/", "id": 44509, "guid": "8264bc3b-68f1-523f-bb5a-28abd300356c", "date": "2024-07-10T14:30:00+02:00", "start": "14:30", "logo": "https://pretalx.com/media/juliacon2024/submissions/9D3TTS/logo_lslf6Vb.png", "duration": "00:30", "room": "While Loop (4.2)", "slug": "juliacon2024-44509-the-satellitetoolbox-jl-ecosystem", "title": "The SatelliteToolbox.jl Ecosystem", "subtitle": "", "track": "Aerospace Minisymposium", "type": "Talk", "language": "en", "abstract": "The SatelliteToolbox.jl ecosystem was created almost ten years ago to contain functions for solving satellite-related problems using the Julia language. Since then, it has become an essential asset for the Brazilian National Institute for Space Research (INPE) when analyzing space missions. This talk presents the ecosystem's main functions and shows case studies of demands put by the Brazilian space program that were solved using SatelliteToolbox.jl.", "description": "We created the SatelliteToolbox.jl package almost ten years ago to provide a set of functions for the Julia language to perform several satellite-related analyses. Since then, this toolbox has been extensively used in many projects of the Brazilian National Institute for Space Research (INPE).\r\n\r\nCurrently, the ecosystem contains functions that can be used to perform many kinds of analyses from the Pre-Phase A up to the operational phase of a satellite. We can create propagators, transform reference systems, compute atmospheric density and magnetic field, and more.\r\n\r\nThis talk presents the main functions of the twelve packages that form the SatelliteToolbox.jl ecosystem. We also show case studies based on actual demands for the Brazilian space program that were addressed by those algorithms.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "50d815bc-74d3-54a1-be38-5d99ab3eeaa0", "id": 10877, "code": "8AFQPZ", "public_name": "Ronan Arraes Jardim Chagas", "avatar": "https://pretalx.com/media/avatars/IMG_2500_-_quadrada_jZ2XRIY.jpg", "biography": "Since 2013, Ronan Arraes Jardim Chagas has been with the Space Systems Division of the Instituto Nacional de Pesquisas Espaciais (INPE). As his most significant accomplishment, he was the Mission Architect and the responsible technician of the attitude and orbit control subsystem (AOCS) of the Brazilian Satellite Amazonia-1, successfully launched in February 2021.\r\n\r\nHe has been working with Control Systems and Signal Processing for 15 years. During this time, he was involved in many projects related to those areas. He successfully embedded Kalman filters (Extended and Unscented) in many autonomous systems and developed state-of-art signal processing algorithms to perform estimation in distributed sensor networks.\r\n\r\nHe conducts several research projects at INPE. Those projects include artificial intelligence and advanced control techniques applied to the AOCS, space mission design optimization, advanced signal processing, and orbit analysis.\r\n\r\nHe is also a Julia language enthusiast. He has used it daily since 2013 to perform many activities related to his work. As his most significant project with this language, he developed a complete AOCS simulator to test and verify this subsystem. The simulation achieved outstanding performance and accuracy, given the orbital data collected from the satellite Amazonia-1.\r\n\r\nHe is the creator and maintainer of some important packages of the Julia language ecosystem: ReferenceFrameRotations.jl, SatelliteToolbox.jl, PrettyTables.jl, and others.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/XH8KBG/", "id": 43981, "guid": "48a2e11b-81c6-53bd-bfce-1532b83cea0e", "date": "2024-07-10T15:30:00+02:00", "start": "15:30", "logo": "https://pretalx.com/media/juliacon2024/submissions/XH8KBG/Trixi_Logo_lfmJSCt.png", "duration": "00:30", "room": "While Loop (4.2)", "slug": "juliacon2024-43981-towards-aerodynamic-simulations-in-julia-with-trixi-jl", "title": "Towards Aerodynamic Simulations in Julia with Trixi.jl", "subtitle": "", "track": "Aerospace Minisymposium", "type": "Talk", "language": "en", "abstract": "In this presentation, we discuss recent developments in Trixi.jl, a numerical simulation framework designed for the accurate computation of the physics of flowing compressible media.\r\n\r\nWe focus on the technical aspect of importing existing meshes into Trixi.jl, exemplified by the utilization of the NACA4412 airfoil mesh from NASA's Turbulence Model Benchmarking Working Group.\r\nThis functionality provides users with the ability to integrate existing meshes into their simulations.", "description": "Mesh generation is a complex and critical process at the beginning of every grid-based simulation workflow.\r\n\r\nWe demonstrate how Trixi.jl facilitates this task by showcasing the usage of existing meshes, exemplified by the NACA4412 airfoil meshes from NASA's Turbulence Model Benchmarking Working Group.\r\nThis functionality represents a substantial leap forward, allowing users to seamlessly integrate well-established meshes into their simulations, a feature particularly significant given the intricacies and resource-intensive nature of mesh generation.\r\nIn more detail, we discuss the import of bilinear meshes into P4est.jl, a Julia wrapper around the p4est library which provides the datastructures for distributed memory adaptive meshes.\r\n\r\nAs we delve into the technicalities of Trixi.jl, we shine a spotlight on its pragmatic application in real-world aerodynamic scenarios. The presentation underscores the straightforward integration of advanced features, notably adaptive mesh refinement (AMR), automatic differentiation through ForwardDiff.jl and shock capturing, showcasing their utility in enhancing the precision, robustness and efficiency of simulations.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "8876bc56-e5ef-5f43-8b9b-e195b91b400e", "id": 39652, "code": "GHEENL", "public_name": "Daniel Doehring", "avatar": "https://pretalx.com/media/avatars/Daniel_Doehring_NfmB8sO.jpg", "biography": "I am a PhD student in applied math/scientific computing at RWTH Aachen University (ACoM Lab of Prof. Torrilhon).", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/VQRLQC/", "id": 44338, "guid": "19ce2ec3-b771-5dca-9b9f-93ff3a061a64", "date": "2024-07-10T16:00:00+02:00", "start": "16:00", "logo": "https://pretalx.com/media/juliacon2024/submissions/VQRLQC/du89_vcontour_Z8GA4LP.png", "duration": "00:10", "room": "While Loop (4.2)", "slug": "juliacon2024-44338-variational-multiscale-method-in-julia-for-airfoils-simulations", "title": "Variational Multiscale Method in Julia for airfoils simulations", "subtitle": "", "track": "Aerospace Minisymposium", "type": "Lightning talk", "language": "en", "abstract": "A stabilized finite element method - the Variational Multiscale Method - has been implemented in Julia. It is based on Gridap library, and the parallelization on GridapDistributed and PartitionedArrays. It has been tested to simulate airfoil up to Reynolds 500 000.", "description": "The Variational Multiscale Method has been implemented in Julia relying on the Gridap ecosystem. It solves the Navier Stokes equations using the finite element method with same-order interpolation elements. Thanks to Gridap we can solve the non-linear, time-dependent problem on distributed architecture with satisfying strong and weak scaling. To speed up the computation also a linearized version is implemented. The final system is solved using PETSc. Thanks to Julia it is possible to write equations almost the same as on paper, differently from other programming languages.\r\n\r\nThe main application is to perform implicit LES on transitional airfoils (Reynolds up to 500 000). It has been validated on the sd7003 airfoil and experimental results.\r\n\r\nIt can be shown how easy is also to implement the continuous unsteady adjoint since the PDEs are available. \r\n\r\nrepos:\r\n/~https://github.com/carlodev/SegregatedVMSSolver.jl\r\n/~https://github.com/carlodev/IncompressibleAdjoint.jl\r\n\r\nVideos:\r\nhttps://www.youtube.com/watch?v=wyJnVTuCC3Q\r\nhttps://www.youtube.com/watch?v=manQpEMwj4Y", "recording_license": "", "do_not_record": false, "persons": [{"guid": "9461b2d7-9ec6-5898-93b5-d2dc66571120", "id": 25228, "code": "GWEBQN", "public_name": "Carlo Brunelli", "avatar": "https://pretalx.com/media/avatars/20220421070818_IMG_1761_4KB0VCy.jpg", "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/UXJWXS/", "id": 44489, "guid": "1d5302c8-182a-50e6-8e7b-6b138b610035", "date": "2024-07-10T16:10:00+02:00", "start": "16:10", "logo": "https://pretalx.com/media/juliacon2024/submissions/UXJWXS/IMG_2863_ZjNRTYv.jpeg", "duration": "00:30", "room": "While Loop (4.2)", "slug": "juliacon2024-44489-trajectory-optimisation-in-space-mechanics-with-julia", "title": "Trajectory optimisation in space mechanics with Julia", "subtitle": "", "track": "Aerospace Minisymposium", "type": "Talk", "language": "en", "abstract": "We report on numerical computation of optimal trajectories in space mechanics using Julia code. The talk will address several examples including minimum time orbit transfert computation (CNES) and solar sail control (ESA). Direct transcription and indirect / shooting methods (based on Pontrjagin maximum principle) as well as techniques from convex optimisation will be illustrated on these examples. Current developments based on Julia control-toolbox will be discussed.", "description": "There is a strong trend to use Julia in scientific computing, so as to take advantage not only of the performance but also of the high level traits of the language. These features allow to cast problems and algorithms in a form close to their mathematical definitions. As powerful Julia libraries to solve ODE's and optimisation problems are now available, it is possible to attack efficiently optimal control problems. Space mechanics is a long-standing application of control theory, and we focus on this topic from the classic (though not so simple) maximum height Goddard problem [1] to modern applications stemming from collaborations with space agencies. More precisely, minimum time orbit transfer [2] (collaboration with CNES and Thales Alenia Space) and solar sailing [3] (collaboration with ESA) will be discussed. Several methods will be presented, including direct transcription and shooting. While the first approach consists in a brutal approximation of the infinite dimensional control problem by a nonlinear program with sparse constraints, the second one leverages Pontrjagin maximum principle to ensure a very precise computation of optimal controls. Rather than competing methods, these two approaches must be made to collaborate: direct codes capture the structure of the solution (typically made of bang and singular arcs), which then allows to devise and initialise a tailored shooting function. These points will be illustrated in the framework of ongoing developments of Julia packages from the [control-toolbox](https://control-toolbox.org) [4] suite.\r\n\r\n[1] Caillau, J.-B.; Ferretti, R.; Tr\u00e9lat, E.; Zidani, H. An algorithmic guide for finite-dimensional optimal control problems. *Handbook of Numerical Analysis*, in Numerical Control: Part B **24** (2023), 559-626.\r\n[2] Caillau, J.-B.; Gergaud, J.; Noailles, J. 3D Geosynchronous Transfer of a Satellite: continuation on the Thrust. *J. Optim. Theory Appl.* **118** (2003), no. 3, 541-565.\r\n[3] Herasimenka, A; Dell'Elce, L.; Caillau, J.-B.; Pomet, J.-B. Controllability properties of solar sails. *J. Guidance Control Dyn.* **46** (2023), no. 5, 900-909.\r\n[4] [control-toolbox.org](https://control-toolbox.org)", "recording_license": "", "do_not_record": false, "persons": [{"guid": "26a442d5-4946-5706-8745-fb1073f640c7", "id": 26346, "code": "HEYELZ", "public_name": "Jean-Baptiste Caillau", "avatar": "https://pretalx.com/media/avatars/8CCC2BDB-C75F-40EF-962B-1D8B48A36A93_n2LvWfy.png", "biography": "Professor, applied mathematics\r\nUniversit\u00e9 C\u00f4te d'Azur, CNRS, Inria, LJAD, France\r\n[Homepage](http://caillau.perso.math.cnrs.fr/)", "answers": []}, {"guid": "b7cdbf4d-39af-523e-b95e-0bff2fccc64d", "id": 40021, "code": "KEYQBW", "public_name": "Alesia Herasimenka", "avatar": null, "biography": null, "answers": []}, {"guid": "682e3711-9138-5f88-94b9-fa690ac65930", "id": 26349, "code": "YDW3SS", "public_name": "Olivier Cots", "avatar": "https://pretalx.com/media/avatars/ocots_V6AmZMs.jpg", "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/SQFY3B/", "id": 44395, "guid": "38ccd0dd-d4a4-5536-8121-3c0d5c255abe", "date": "2024-07-10T16:40:00+02:00", "start": "16:40", "logo": null, "duration": "00:30", "room": "While Loop (4.2)", "slug": "juliacon2024-44395-propagating-large-orbital-uncertainty-with-taylorintegration-jl", "title": "Propagating large orbital uncertainty with TaylorIntegration.jl", "subtitle": "", "track": "Aerospace Minisymposium", "type": "Talk", "language": "en", "abstract": "One of the main problems in the computation of orbital predictions, is the propagation of the orbital uncertainty. This problem is relevant in a wide range of scenarios, from the design of interplanetary spacecraft trajectories, to the assessment of the hazard posed by an asteroid impacting the Earth. In this talk, we present a technique to propagate large sets of initial conditions in TaylorIntegration.jl via a technique called Automatic Domain Splitting (ADS).", "description": "One of the main problems in the computation of orbital predictions, is the propagation of the orbital uncertainty. This problem is relevant in a wide range of scenarios in astrodynamics, from the assessment of the hazard posed by an asteroid impacting the Earth, to the design of interplanetary spacecraft trajectories. A first possibility to tackle this problem, is to solve a given initial value problem (IVP) in terms of Taylor expansions with respect to time and small deviations around a given reference initial condition, a technique known as jet transport (JT). This technique allows to solve IVPs for small neighborhoods around a given reference initial condition. Nevertheless, although our implementation of JT in TaylorIntegration.jl controls the error with respect to time, so far it does not control the error on the Taylor expansions around these small deviations with respect to the reference initial conditions, which under some circumstances can break the accuracy of the IVP solution. In this talk, we present a technique to mitigate this issue. We are implementing in TaylorIntegration.jl a technique called Automatic Domain Splitting (ADS), as introduced by Wittig, et. al. (2015). The idea is simple: we begin with a domain where we can trust JT initially works. As we propagate, whenever an error metric exceeds a tolerance, the current polynomial splits into two JT integrations, each representing half of the original domain. This process is iterated for each new sub-domain throughout an integration, so that the solution for the set of initial conditions is returned as a binary tree of JT solutions. We discuss applications of this technique to modelling of planetary fly-bys by small bodies (asteroids, comets, spacecraft, etc.).", "recording_license": "", "do_not_record": false, "persons": [{"guid": "78d9c424-6310-564e-af0b-e014f7caedea", "id": 26320, "code": "R9CEVF", "public_name": "Jorge A. P\u00e9rez-Hern\u00e1ndez", "avatar": "https://pretalx.com/media/avatars/34600f9680ea73a9cf7c8cccdd874fc7_CCdfAYa.jpg", "biography": null, "answers": []}, {"guid": "ef721b2b-2a95-5dda-9054-4cf295e1587c", "id": 26323, "code": "7WPHRX", "public_name": "Luis Eduardo Ram\u00edrez Montoya", "avatar": null, "biography": null, "answers": []}, {"guid": "3a8f4798-73a6-508b-a4f9-139996bb3b16", "id": 26377, "code": "N8X8NX", "public_name": "Luis Benet", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/MVFVGB/", "id": 44464, "guid": "e7b5ad0e-06bb-5517-8c1e-1263c9285cba", "date": "2024-07-10T17:10:00+02:00", "start": "17:10", "logo": null, "duration": "00:10", "room": "While Loop (4.2)", "slug": "juliacon2024-44464-runwaypnpsolve-jl-uncertainty-aware-pose-estimation-", "title": "RunwayPNPSolve.jl: Uncertainty-Aware Pose Estimation.", "subtitle": "", "track": "Aerospace Minisymposium", "type": "Lightning talk", "language": "en", "abstract": "We present `RunwayPNPSolve.jl`, a framework for uncertainty-aware pose estimation for visual landing applications with multiple methods including real-time least-squares minimization + resampling, Monte-Carlo Markov-Chain, and a linear approximation, by leveraging the existing Julia package ecosystem.\r\nThe package further provides a framework of useful primitives to build simultaneously differentiable, unitful and coordinate-system-aware interfaces, and an interactive visualization pipeline.", "description": "Autononomous visual landing systems for personal and commercial aircraft have typically only been available given the use of expensive sensors with a moderate safety certification level.\r\nWith the recent emergence of high-performing computer vision models using deep learning, a new avenue for such landing systems has opened, and is being pursued by multiple companies such as Acubed (an Airbus company), Daedalean, XWing, Reliable Robotics, and others.\r\nHowever, it is an open problem to construct such systems under the high safety and certification requirements in aviation.\r\nThus, deep learning models are typically only used for image feature estimation (including measures of uncertainty), and more traditional techniques are used for the actual pose estimation and processing of uncertainty estimates.\r\n\r\nIn this talk we will focus on the latter, and showcase our package `RunwayPNPSolve.jl` which leverages Julia’s extensive ecosystem for processing pixel features, for example provided as a Normal distribution, to construct a probability distribution over our pose and orientation.\r\n\r\nIn particular, we first present a framework of data primitives tailored for visual landing setting, including\r\n\r\n- statically typed coordinate systems (e.g. `XYZ`, `ImageProjection`, `LongitudeLatitude`) that integrate with `Geodesy.jl` and `CoordinateTransformations.jl`;\r\n- defining the external and (most of the) internal API through `Unitful.jl` interfaces (`m`, `pxl`, `degrees`), while maintaining type flexibility for e.g. `ForwardDiff.jl`’s `Dual` types;\r\n- a live satelite-view of pose estimation on real runways that integrates with OpenStreetMaps through `Tyler.jl` and a custom runway database; and\r\n- interactive visualization capabilities through `Makie.jl`.\r\n\r\nAfter presenting the framework, we present several approaches implemented in `RunwayPNPSolve.jl` for the actual uncertainty-aware pose estimation, including\r\n\r\n- a mathematically sound approach using Markov-Chain Monte-Carlo backed by `Turing.jl`;\r\n- a resampling based approach built on top of `NonlinearSolve.jl` (although we are happy to discuss our attempts to use `LsqFit.jl`, `Optim.jl`, and `NLSolve.jl`);\r\n- a somewhat uninformed approach that directly differentiates through the iterative least-squares solver from `NonlinearSolve.jl` using `ForwardDiff.jl`;\r\n- an efficient linear-approximation requiring only a single (automatic) derivative.\r\n\r\nIf time permits, we will also discuss how we can estimate the quality of the resulting uncertainty estimates by measuring calibration in a variety of way, including a novel method we plan to publish soon.\r\n\r\nThe package including the discussed topics can be found under and .", "recording_license": "", "do_not_record": false, "persons": [{"guid": "70bb7547-3c92-5048-b57f-6bcd79c8ab43", "id": 39999, "code": "XN93M7", "public_name": "Romeo Valentin", "avatar": "https://pretalx.com/media/avatars/nice_photo_2_compressed_d7bNI9p.jpg", "biography": "- PhD Student at the Stanford Intelligent Systems Lab (SISL), developing certification guidelines for employing data-driven algorithms in safety-critical applications.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/EKUN3E/", "id": 43506, "guid": "071868cb-1fcb-5f2a-8553-bc26f2e7c375", "date": "2024-07-10T17:20:00+02:00", "start": "17:20", "logo": null, "duration": "00:10", "room": "While Loop (4.2)", "slug": "juliacon2024-43506-optimal-cooperative-rendezvous-using-aerialvehicles-jl", "title": "Optimal Cooperative Rendezvous using AerialVehicles.jl", "subtitle": "", "track": "Aerospace Minisymposium", "type": "Lightning talk", "language": "en", "abstract": "This presentation introduces the use of ModelingToolkit based AerialVehicles.jl model libraries and JuliaSimControl.jl to demonstrate optimal rendezvous/docking of a quadrotor with multiple ground vehicles focusing on the efficient cooperation of ground vehicles with a landing quadrotor. The central theme is the use of a collocation-based approach to optimize control efforts, ensuring a seamless rendezvous between multiple ground vehicles and the quadrotor using a shared time-to-go estimate.", "description": "This talk presents an in-depth exploration of a novel solution for the cooperative, optimal multi-vehicle rendezvous problem, focusing on rendezvous of a quadrotor with multiple ground vehicles. The solution, pioneering in its approach, combines a gain-free, time-dependent optimal control problem with a consensus protocol based on shared time-to-go information. This dual-stage method not only streamlines vehicle convergence but also ensures adaptability and efficiency in trajectory refinement.\r\nThe presentation will be structured into several key sections, each delving into different aspects of the proposed solution:\r\nIntroduction to Multi-Vehicle Rendezvous Problems:\r\nWe will begin by providing an overview of the challenges and current state of multi-vehicle rendezvous solutions, particularly emphasizing the complexities of coordinating the rendezvous. This will set the stage for understanding the novelty and necessity of the proposed method.\r\nOverview of the Proposed Methodology:\r\nThe first stage involves solving the optimal control problem to generate initial rendezvous trajectories. Here, the focus will be on the gain-free, time-dependent nature of the control problem and its implications for efficient vehicle convergence. The second stage of our approach refines these trajectories in real-time, employing a consensus-based adaptation protocol.\r\nConsensus Protocol and Trajectory Refinement: \r\nThe consensus based adaption would be such that the time-to-go estimates of the ground vehicles will be set to the time-to-go of the approaching quadrotor and our finite-time control framework would make the approach optimal.\r\n\r\nSimulation Demonstrations:\r\nA significant portion of the presentation will be dedicated to showcasing numerical simulations. These simulations will demonstrate the method's effectiveness, its superiority in terms of convergence and adaptability, and the impact of communication topology on performance. The simulations will utilize JuliaSimControl for optimal control generation and the AerialVehicles model library to model the quadrotor and ground vehicles, providing a practical and visual representation of the method's capabilities.\r\n\r\nPractical Implications and Applications:\r\nThe talk will explore the practical applications of this methodology, discussing its potential in various fields such as autonomous transport, logistics, emergency response, and military operations. We will delve into how this solution can revolutionize the efficiency and safety of autonomous vehicle operations in complex, dynamic environments.\r\n\r\nThis presentation is designed to provide a comprehensive understanding of our innovative solution to the multi-vehicle rendezvous problem. Attendees will gain valuable insights into advancements in autonomous systems, optimal control, and consensus protocols, leaving with a deeper appreciation of the complexities and potentials in this rapidly evolving field.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "6cf6ae78-4dd1-5f8c-8a0b-47442862d3e5", "id": 26307, "code": "GCQ8Q3", "public_name": "Rajeev Voleti", "avatar": "https://pretalx.com/media/avatars/287D81E7-9D7E-4892-81F6-EE9D34E25737_aENTPkq.jpeg", "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/HYW9AW/", "id": 43472, "guid": "fe72a6ba-ce85-5a85-97b6-cd5177b66b6f", "date": "2024-07-10T20:00:00+02:00", "start": "20:00", "logo": null, "duration": "00:30", "room": "While Loop (4.2)", "slug": "juliacon2024-43472--featured-pluto-notebooks-submit-your-own-", "title": "\ud83c\udf88 Featured Pluto notebooks: submit your own!", "subtitle": "", "track": "Posters", "type": "Poster", "language": "en", "abstract": "This poster presents _featured Pluto notebooks_: a curated collection of Pluto notebooks (interactive Julia notebooks) that can be viewed in Pluto or online.\r\n\r\nThe featured notebooks are intended to onboard new Julia programmers, and to highlight the diversity of work in the Julia community. Featured notebooks are open to submissions from Julia developers of all skill levels; our presentation will showcase this platform to share your ideas and knowledge.", "description": "Pluto is a notebook-based Julia environment. It was initially designed to be especially suitable for students and beginners, but has since grown into one of the most popular IDEs for Julia programmers of all skill levels.\r\n\r\nFeatured notebooks are a collection of notebooks that can be viewed in Pluto or online ([featured.plutojl.org](https://featured.plutojl.org/)).\r\n\r\nFeatured notebooks are a way to show users what they can do with Julia and Pluto. For budding programmers, this can mean a simple tutorial on how to use Pluto, or how to use arrays in Julia, but for more experienced programmers, featured notebooks can highlight how Julia is used in different fields, give examples of interactive visualisations that are free to reuse in your own work, or explain more advanced concepts to turn Julia scripts into interactive notebooks.\r\n\r\nFeatured notebooks are a curated collection; anyone can submit their work as a featured notebook, but submissions are reviewed to ensure new Pluto users won't encounter broken or unintelligible notebooks. We encourage Julia programmers to submit notebooks.\r\n\r\nYou don't need to be an expert to write a featured notebook! The notebooks are designed to help beginning Pluto users get underway with their own ideas; as such, short tutorials on basic Julia concepts, or short examples of neat ideas, are very much welcome, and are a great way to contribute to the Julia community when you're still learning yourself.\r\n\r\nThat said, we also very much welcome experienced Julia programmers to share their work. Featured notebooks can highlight how you use Julia in your domain, bring attention to a neat package, or share exercises that you created for a course.\r\n\r\nThe poster presentation will cover all need-to-know information about how to submit notebooks, and what is appropriate to submit. We will also provide some advice to notebook authors on creating engaging stand-alone notebooks. We will also happily answer your questions and discuss your ideas for potential submissions.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "3fa9a40b-1af5-54df-9e2d-e04b5313940a", "id": 39263, "code": "33PSTN", "public_name": "Luka van der Plas", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/ZLUFAB/", "id": 44244, "guid": "752d494a-523c-5726-8428-7903853b5ee1", "date": "2024-07-10T20:30:00+02:00", "start": "20:30", "logo": "https://pretalx.com/media/juliacon2024/submissions/ZLUFAB/juliacon_poster_IsoBjRP.png", "duration": "00:30", "room": "While Loop (4.2)", "slug": "juliacon2024-44244-learning-biological-modulation-mechanisms-with-sciml", "title": "Learning Biological Modulation Mechanisms with SciML", "subtitle": "", "track": "Posters", "type": "Poster", "language": "en", "abstract": "Biological systems often include complicated combinations of positive and negative feedback control. Recovering this control network is often difficult, because of both limitations in biological knowledge and available data. In this poster, we present the use of SciML's universal differential equation framework, uniquely available in Julia, for uncovering and personalising mathematical equations for biological modulation points and mechanisms.", "description": "Biological regulation is the result of the interplay between many molecules in a network of chemical reactions. Through mathematical modelling, parts of the system can be simulated in silico to quickly match biological hypotheses with experimental evidence.\r\n\r\nHowever, many components of subsystems of human regulation are often unknown, or cannot be directly measured. Therefore, simplifications are required to keep the model both mathematically identifiable from the available data, as well as biologically meaningful. This process can take a long time, and simplified solutions may work on population averages, but fail more often when applied to personalised data directly.\r\n\r\nModelling unknown terms using a neural network, creating a universal differential equation (UDE), and combining this with symbolic regression can enable the data-driven discovery of mathematical model terms that describe the data.\r\n\r\nThis poster describes the systematic application of these universal differential equations in context of control loops and modulation points found in biological models, presenting the use of neural networks to both locate and recover missing modulation points in biological models. Furthermore, it highlights limitations of the inclusion of neural networks related to data sparsity and identifiability.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "886537b3-6b49-580e-b36a-d35b487c5553", "id": 38755, "code": "JEHZJY", "public_name": "Max de Rooij", "avatar": "https://pretalx.com/media/avatars/IMG_0154_MgJgCrw.jpeg", "biography": "I\u2019m a PhD candidate in systems biology for metabolic disease at the Department of Biomedical Engineering at Eindhoven University of Technology. I am working on model personalisation with scientific machine learning.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/PN3DXY/", "id": 43695, "guid": "bf6568aa-33eb-5134-92c4-a9eb8e696cf9", "date": "2024-07-10T21:00:00+02:00", "start": "21:00", "logo": null, "duration": "00:30", "room": "While Loop (4.2)", "slug": "juliacon2024-43695-separable-functions", "title": "Separable Functions", "subtitle": "", "track": "Posters", "type": "Poster", "language": "en", "abstract": "Many multidimensional functions (e.g. a Gaussian) can be written in a (generalized) separable form.\r\n`SeparableFunctions.jl` is a package that calculates and represents separable functions efficiently. \r\nUpon construction of a function, one-dimensional representations are pre-calculated and effienctly represented in various ways to the user.\r\nCompared to a non-separable calculation, this yields significant speed improvements for both CPU and GPU-code alike. Radial functions are also supported.", "description": "Many multidimensional functions can be written in a (generalized) separable form. A good example of such a function is the Gaussian function. Computing such functions by first computing the separable entities and then combining them, or even keeping them in a lazy form can yield significant advantages in computation speed.\r\n`SeparableFunctions.jl` is a package, that leverages such advantages. Multidimensional functions are computed by first calculating their single-dimensional representations and then creating the final multidimensional result by an outer product (or sum or max or any other operator).\r\nSince the broadcasting mechanism of Julia is fast compared to the evaluation of the function at each multidimensional position, the final result is calculated much faster. The typical speedup can be an order of magnitude. \r\nThe package supports three forms of representing such separable functions: collecting them, a `LazyArray` representation, and a broadcasting form labelled `_sep`. The latter being the most generic, however, for its application the operator needs to be supplied as follows `.*(my_function_sep...)`.\r\nIn addition also radial functions (on a Cartesian grid) can be sped up, by exploiting their symmetries and possibly interpolating on a radially pre-calculated grid. \r\nThe package hosts a number of easy to use separable functions such as `gaussian`, `sinc`, `ramp`, `rr2` and some complex-valued exponentials needed for propagating optical fields or Fourier-based shifting.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "d8828c16-5606-5dd2-936c-f40b40e4c98f", "id": 10334, "code": "CNV3SE", "public_name": "Rainer Heintzmann", "avatar": "https://pretalx.com/media/avatars/Bild1_2TPAVyf.jpg", "biography": "Rainer Heintzmann is a professor of Physical Chemistry at the Friedrich-Schiller University Jena, and heads the microscopy research unit at the Leibniz Institute of Photonic Technology in Jena, Germany. His research focuses on methods for imaging cellular function at high resolution and developing techniques to measure multidimensional information in small biological objects such as cells, cellular organelles or other small structures of interest. He developed structured illumination, pointillism, image inversion interferometry and optical photon reassignment and is highly interested in computer-based reconstruction and inverse modelling methods such as deconvolution.", "answers": []}], "links": [], "attachments": [], "answers": []}]}}, {"index": 3, "date": "2024-07-11", "day_start": "2024-07-11T04:00:00+02:00", "day_end": "2024-07-12T03:59:00+02:00", "rooms": {"REPL (2, main stage)": [{"url": "https://pretalx.com/juliacon2024/talk/DMLTLG/", "id": 45604, "guid": "eb86ddaa-aebc-57be-9a29-00d5def38af1", "date": "2024-07-11T09:00:00+02:00", "start": "09:00", "logo": null, "duration": "00:50", "room": "REPL (2, main stage)", "slug": "juliacon2024-45604-software-at-asml-the-force-behind-making-microchips", "title": "Software at ASML: the Force behind making microchips", "subtitle": "", "track": "General", "type": "Keynote", "language": "en", "abstract": "In a rapidly evolving landscape of semiconductor manufacturing, ASML\u2019s advanced lithography technologies are pivotal in driving Moore\u2019s Law forward. The focus of this talk is ASML\u2019s holistic approach to Software development and acceleration of Software delivery to customers. In addition, we discuss how ASML engages and cultivates Software talents. At the end of this presentation the attendees will have an understanding of ASML\u2019s software ecosystem and its critical role in advancing the future.", "description": "A full description for this keynote will be announcIn a rapidly evolving landscape of semiconductor manufacturing, ASML\u2019s advanced lithography technologies are pivotal in driving Moore\u2019s Law forward. The focus of this talk is ASML\u2019s holistic approach to Software development and acceleration of Software delivery to customers. Key highlights include our innovative development environment, which fosters seamless integration and rapid iteration amongst teams. In addition, we discuss how ASML engages and cultivates Software talent through strategic initiatives and collaborative projects. By fostering a dynamic and innovative work environment, we empower our engineers to drive technological advancements and operational excellence.\r\n\r\nAt the end of this presentation the attendees will have an understanding of ASML\u2019s software ecosystem and its critical role in advancing the future of semiconductor fabrication.ed and added to the session when it becomes available.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "fe8e54d7-842b-5704-8c09-b4a513e16f0c", "id": 45295, "code": "8HJYZM", "public_name": "Maurice du Mee", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/YKRZDP/", "id": 43367, "guid": "3fb13d4a-fabb-5361-838f-d7c68577c01c", "date": "2024-07-11T10:00:00+02:00", "start": "10:00", "logo": null, "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-43367-language-1-5-revisited", "title": "Language 1.5 revisited", "subtitle": "", "track": "Julia Internals and Tooling", "type": "Talk", "language": "en", "abstract": "At JuliaCon Local Eindhoven 2023, we've argued that Julia creates the \"1.5 language problem\". The goal back then has been to initiate a discussion--and numerous reactions show that a discussion has been initiated indeed. In this talk, we want to recap our original arguments, analyze and summarize the discussion that we've observed online and present some ideas where to take this from here.", "description": "At JuliaCon Local Eindhoven 2023, we've argued that Julia creates the \"1.5 language problem\". What's the \"1.5 language problem\"? Well, Julia has been advertised as a language that can be used for rapid high-level prototyping but also for very fast and efficient low-level code. However, while both aspects can be achieved with Julia code, the necessary coding requirements and styles are very different.\r\n\r\nThe goal of last year's talk has been to initiate a discussion--and numerous reactions show that a discussion has been initiated indeed. It has been the most watched talk on YouTube from the conference [1], and it has created long discussions on the Julia Discourse [2] and Reddit [3].\r\n\r\nToday, we recap and refine our original arguments. Then, we will analyze and summarize the discussion that we've observed online. Reflecting on the talk and the online discussion, we will present some ideas and suggestions to where to take this from here. In particular, we will argue that the different styles of Julia programming can be thought of as lying on a spectrum and that a (standardized?) visual guide used in presentations, tutorials, etc. can help a reader identify what sort of expectations they should make about runtime and extendability. Furthermore, we rally a call to arms to create more tutorials that help learners iteratively taking their code bases from the prototyping spectrum to the pedal-to-the-medal speed spectrum.\r\n\r\n[1] https://www.youtube.com/watch?v=RUJFd-rEa0k&list=PLP8iPy9hna6Tp3QV4akXAd23_O5Vjm_e2\r\n[2] https://discourse.julialang.org/t/does-julia-create-a-1-5-language-problem/107984\r\n[3] https://www.reddit.com/r/Julia/comments/18nyxew/michael_tiemann_julia_solves_the_2_language/", "recording_license": "", "do_not_record": false, "persons": [{"guid": "bc531655-e284-5c91-abcb-3e4ae3af58a0", "id": 39175, "code": "LEWCDK", "public_name": "Michael Tiemann", "avatar": "https://pretalx.com/media/avatars/thermographic_IP02FiQ.png", "biography": "I'm a machine learning research scientist from southern Germany.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/EJVFMF/", "id": 42181, "guid": "b35efb5d-e5bc-5572-9d8f-66673cf7a3d3", "date": "2024-07-11T10:30:00+02:00", "start": "10:30", "logo": null, "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-42181-binarybuilder-2-return-of-the-compilers", "title": "BinaryBuilder 2: Return of the Compilers", "subtitle": "", "track": "Julia Internals and Tooling", "type": "Talk", "language": "en", "abstract": "Rising from the ashes of its languid repose over the last two years, BinaryBuilder development makes a triumphant reentry into the public world with a brand new implementation and improved ergonomics around almost every aspect of the entire project. Faster, more modular, configurable, and extensible than ever, the new BinaryBuilder release will change the lives of anyone forced to deal with native code compilation.", "description": "BinaryBuilder development hit a plateau about two years ago, when the core developers collected a laundry list of pain points:\r\n\r\n* Complex software projects such as LLVM do not fit nicely into a single `build_tarballs()` invocation; there are potentially multiple stages to the build, outputs may need to be split across multiple JLLs, different platforms may need different recipes, etc...\r\n* Extending BinaryBuilder to work with more compilers/platforms is a painful and arcane process that typically requires someone very well versed in the BB world to take to the finish line.\r\n* BinaryBuilder itself was so monolithic and interconnected that small changes could cause failures in seemingly unrelated areas, slowing development dramatically.\r\n\r\nOnce these pain points accumulated to a certain point, the core developers realized that the very architecture of BinaryBuilder (particularly, how the build environment, so called \"compiler shards\" were constructed) contributed directly to many of these problems. Never to shrink away from ambitious projects, the developers rolled up their sleeves and began a from-scratch rework of every component and subsystem of the BinaryBuilder suite.\r\n\r\nThis talk will cover not just the new end-user capabilities such as staged builds, but also some of the rationale behind the new organization of the codebase and why this organization unlocks new capabilities for users that are not even using BinaryBuilder directly. One consequence of some of the reorganization will be that pieces of the new BinaryBuilder (such as compilers) will be usable outside of the build environment.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "922c7984-f3e3-58ea-82a5-a37f598b09db", "id": 1080, "code": "B98NWS", "public_name": "Elliot Saba", "avatar": "https://pretalx.com/media/avatars/mugshot_bkDhIwg.png", "biography": "Elliot has been a core developer on the Julia language project for over ten years. He is one of the primary authors of the BinaryBuilder.jl project and associated efforts. He is currently the Director of EDA Engineering at JuliaHub, working on the CedarEDA suite of circuit simulation tools.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/EJXYNM/", "id": 43375, "guid": "c6c7ec0d-40b0-5710-9b9d-88af4a01816f", "date": "2024-07-11T11:00:00+02:00", "start": "11:00", "logo": null, "duration": "00:10", "room": "REPL (2, main stage)", "slug": "juliacon2024-43375-writing-allocation-free-julia-code-with-alloccheck-jl", "title": "Writing allocation-free Julia code with AllocCheck.jl", "subtitle": "", "track": "Julia Internals and Tooling", "type": "Lightning talk", "language": "en", "abstract": "Avoiding allocations is crucial when writing performant Julia, so we developed AllocCheck.jl, a package that provides tools for developing and statically enforcing allocation-free code.", "description": "In this talk we will present AllocCheck.jl and give a quick example of how to use it, touring it's functionality and possible applications. Specifically around it's main entry point `@check_allocs, which is used to check whether a function allocates or not.\r\n\r\nWe'll dive into the three major sources of allocations in Julia code (object creation, dynamic dispatch, allocations by the runtime) and show how AllocCheck.jl can help you identify where in your code these problems arose. You'll see some of the common challenges and solutions when writing allocation-free code, and how to dive further with other tools in the ecosystem (such as Cthulhu.jl).\r\n\r\nThis tool also makes it possible to deploy Julia safely for specialized applications, such as running long simulation loops on embedded hardware where allocation-free code is vital for safe operation of your hardware. In this talk, we'll break apart what's needed to safely write code for these stringent applications and what extra requirements this implies for your code.\r\n\r\nAllocCheck.jl works by inspecting the optimized LLVM IR and doing static analysis over it, figuring out if and where allocations happen, what is type of the objects being allocated, and if the allocation site is in an error path.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "299ad72b-5e81-5819-ad36-227c53211c13", "id": 39186, "code": "LM9X99", "public_name": "Gabriel Baraldi", "avatar": "https://pretalx.com/media/avatars/file_5lWgAxo.jpg", "biography": "Compiler engineer at JuliaHub and open source enthusiast.", "answers": []}, {"guid": "57bc385f-c57b-5bc1-b9bb-f0281880136c", "id": 39230, "code": "HZBXLP", "public_name": "Cody Tapscott", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/XZRCQG/", "id": 44495, "guid": "f701fdb7-0f34-5ed6-abc4-51ca7ea551b2", "date": "2024-07-11T11:10:00+02:00", "start": "11:10", "logo": null, "duration": "00:10", "room": "REPL (2, main stage)", "slug": "juliacon2024-44495-what-s-new-in-genieframework-", "title": "What's New in GenieFramework?", "subtitle": "", "track": "Notebooks & Graphics", "type": "Lightning talk", "language": "en", "abstract": "Join us to discover the latest advancements in GenieFramework. This talk will highlight the key updates, including the introduction of GenieBuilder, improved documentation, customization options with custom components, enhanced styling capabilities, and key technical improvements. Attendees will gain insights into how these new features empower developers to build even more powerful and user-friendly web applications using GenieFramework.", "description": "- Experience the game-changing capabilities of the new version of GenieBuilder, designed to simplify web application development.\r\n- Discover how the updated documentation together with the app gallery provides comprehensive guidance on GenieFramework's functionalities.\r\n- Explore the flexibility offered by custom components and how they enable developers to tailor applications to specific requirements.\r\n- Learn about the enhanced styling options including tailwind css.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "01bd7287-4e42-5ee6-8e28-724a35a625ca", "id": 40006, "code": "MQLTM3", "public_name": "Helmut H\u00e4nsel", "avatar": "https://pretalx.com/media/avatars/Haensel_Helmut_600x600_P6zSA2S.png", "biography": "**Study of Physics**\r\n - *Universit\u00e4t Konstanz / Universit\u00e9 Joseph Fourier (Grenoble I)* \r\n - 1990 \u2013 1996\r\n\r\n**PhD in Physical Chemistry / Universit\u00e4t Bayreuth**\r\n - *Ludwig-Maximilians-Universit\u00e4t M\u00fcnchen*\r\n - 1996 \u2013 2004\r\n\r\n**Positions in Merck KGaA, Darmstadt Germany**\r\n - *Post Doc*\r\n - *R&D Manager - Liquid Crystal Research*\r\n - *Senior Expert Data Science*\r\n - 2006 \u2013 today", "answers": []}, {"guid": "3d8c6cd6-d86a-5d88-9e03-04d2a37f88c2", "id": 26361, "code": "VMVBRR", "public_name": "Pere Gim\u00e9nez", "avatar": "https://pretalx.com/media/avatars/1575333366809_K2g3vHK.jpeg", "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/AKGE7D/", "id": 48301, "guid": "d2dafe23-5cae-52a8-8380-81f90113f99a", "date": "2024-07-11T11:30:00+02:00", "start": "11:30", "logo": null, "duration": "01:00", "room": "REPL (2, main stage)", "slug": "juliacon2024-48301-ai-hardware-and-real-world-ai", "title": "AI Hardware and Real-world AI", "subtitle": "", "track": "AI/ML/AD", "type": "Keynote", "language": "en", "abstract": "AI is fast becoming a significant consumer of the world\u2019s computational power, so it is crucial to use that power wisely and efficiently. Our approaches to doing so must span all levels of the research stack: from fundamental theoretical understanding of the loss surfaces and regularization properties of machine learning models, to efficient layout at the transistor level of floating-point multipliers and RAM.", "description": "AI is fast becoming a significant consumer of the world\u2019s computational power, so it is crucial to use that power wisely and efficiently. Our approaches to doing so must span all levels of the research stack: from fundamental theoretical understanding of the loss surfaces and regularization properties of machine learning models, to efficient layout at the transistor level of floating-point multipliers and RAM. I will talk about projects, such as real-time computer vision on the Microsoft HoloLens HPU (about 3.5 GFLOPS ), which required extreme efficiency in both objective and gradient computations, and how this relates to the training of massive AI models on Graphcore\u2019s IPU (about 350 TFLOPS). Key to this work is how we empower programmers to communicate effectively with such hardware, and how we design frameworks and languages to ensure we can put theory into practice. So this talk contains aspects of: mathematical optimization, automatic differentiation, programming languages, and silicon design. Despite this range of topics, the plan is for it to be accessible and useful to anyone who loves computers.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "747b9c53-6330-5fce-8f38-19c0d8694e76", "id": 44701, "code": "7MDE99", "public_name": "Andrew Fitzgibbon", "avatar": "https://pretalx.com/media/avatars/image001_PSx5IhB.jpg", "biography": "Andrew Fitzgibbon has been closely involved in the delivery of three ground-breaking computer vision and machine learning systems over two decades. In 2000, he was computer vision lead on the Emmy-award-winning 3D camera tracker \u201cBoujou\u201d; in 2009 he introduced large-scale synthetic training data to Kinect for Xbox 360, and in 2019 was science lead on the team that shipped fully articulated hand tracking on HoloLens 2. His passion is bringing the power of mathematics to the crucible of real-world engineering. He has numerous research awards, including ten \u201cbest paper\u201d prizes at leading conferences, and is a Fellow of the UK\u2019s Royal Academy of Engineering.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/HRRRET/", "id": 44351, "guid": "bedf326f-4a29-5c04-b552-38fcf669aa51", "date": "2024-07-11T14:00:00+02:00", "start": "14:00", "logo": null, "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-44351-improving-julia-s-usability-with-code-provenance", "title": "Improving Julia's usability with code-provenance", "subtitle": "", "track": "Julia Internals and Tooling", "type": "Talk", "language": "en", "abstract": "Julia's potential is held back by significant usability problems in error messages, debugger operation and performance, and the need for a package, Revise, for live code updates. These diverse issues can be resolved by improving Julia's ability to relate source code written by the programmer to the various internal representations in Julia's compiler. In this talk we will explain this common thread and discuss ongoing work to improve compiler \"provenance.\"", "description": "Julia has enormous strengths and its widespread adoption is well justified. However, there remain important usability barriers in areas such as interactive debugging and live code updates. We believe that resolving these barriers will be an important step towards extending Julia's reach.\r\n\r\nIn this presentation, we will explain how a single common thread underlies several of the most significant usability challenges. We will also discuss ongoing work to resolve these challenges.\r\n\r\n## Challenges\r\n\r\n- Efficient Julia development requires the use of a package, Revise.jl to updating already-compiled code in interactive sessions. There are several things that make Revise complex, but the most important is that to track line numbers in actively-edited files, Revise must *selectively* re-evaluate the package's source code. The Julia compiler doesn't track all the information required for this rather complex task and as a result it is the main source of Revise bugs and of regressions with each new Julia version.\r\n- Julia's interactive debugger has poor usability:\r\n + it often struggles to relate program state back to the source code as written by the programmer. This happens because the debugger/interpreter is targeted not at raw source code, but at an early-to-intermediate stage of the compilation pipeline. This \"lowered code\" is difficult to relate back to the original source code.\r\n + it exhibits poor performance, interpreting code at speeds that are often four orders of magnitude slower than compiled code. One way to speed it up --- likely by one to two orders of magnitude --- would be to target the interpreter at an even deeper layer of the compilation pipeline, after many of the most costly operations (method lookup, inlining, etc.) have been finished. But at these deeper layers, the challenge of mapping state back to the original source code is currently intractable.\r\n- Compiler error messages have low resolution; they refer to line numbers but don't include not the position within a line of the source code. Sometimes they refer to the wrong line of source code.\r\n- Debug information in compiled code has low resolution and stack traces may be ambiguous as to which function call was entered.\r\n\r\nThese issues arise because of a mismatch between the user's view of the code as a text file compared to the compiler's view of the code as a heavily processed intermediate representation (IR). In particular, the IR only knows about the source in an incomplete, low resolution way in terms of line numbers that are sometimes inaccurate.\r\n\r\n## Steps towards resolution\r\n\r\nTo resolve these issues we need a high precision map from the compiler's various IRs back to the user's source code --- we need to track the *provenance* of every construct in the IR. With this map we can always talk to the user in terms of their source code, solving many usability problems with error reporting and source-level debuggers. In addition, tools like Revise.jl can use this information to know which range of bytes in the source file define which method signatures.\r\n\r\nFor our purposes compilation may be broken into these stages:\r\n\r\n* Parsing\r\n* Macro expansion\r\n* Symbolic simplification (code lowering)\r\n* Type inference and high level optimization\r\n* Low level optimization and machine code generation\r\n\r\nProvenance tracking during parsing has been improved in prior work as part of the [JuliaSyntax](/~https://github.com/JuliaLang/JuliaSyntax.jl) package. To improve error message generation during lowering, improve the debuggers, and to simplify Revise, we additionally need to track provenance through the next two stages of macro expansion and lowering and this talk will focus on those areas. Solving problems such as backtrace ambiguities will require changes all the way through to machine code generation; we leave that to future work.\r\n\r\nMacro expansion presents a particular challenge because user-written macros accept Julia's `Expr` data structure that can't support our goals of high precision provenance. To solve this problem we need new data structures and APIs for macro writers and these need to be opt-in to preserve compatibility. A working proof of concept is available at [JuliaLang/JuliaSyntax.jl#329](/~https://github.com/JuliaLang/JuliaSyntax.jl/pull/329). Designing a completely new public API for macros also allows us to tackle some long standing macro usability issues including\r\n* \"automatic hygiene\" (no more `esc()`)\r\n* issues with expansion of nested macros\r\n* precise reporting of errors in the syntax supported by a macro\r\nand we'll briefly touch on these points.\r\n\r\nReworking code lowering has fewer compatibility constraints but is a fairly large body of code. We'll discuss progress toward rewriting lowering with a particular emphasis on the data structures used. Some of the code analyses implemented in lowering are useful outside the compiler and we'll talk about how to make them accessible for tasks like tool assisted refactoring.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "df5346dd-7d68-5ef9-bc48-5a93b017f4c6", "id": 1179, "code": "J9BSUH", "public_name": "Tim Holy", "avatar": "https://pretalx.com/media/avatars/holy_headshot_NqmqA6c.jpg", "biography": "Tim Holy is the Alan A and Edith L Wolff Professor of Neuroscience at Washington University. Claire Foster is the creator of JuliaSyntax.", "answers": []}, {"guid": "9886e35a-f467-5201-a90b-cecd81f35e15", "id": 10496, "code": "FAS33Q", "public_name": "Claire Foster", "avatar": "https://pretalx.com/media/avatars/3923e31d1ce285a21525467beed1b64f_Ow6Ypid.jpg", "biography": "Claire is a long time enthusiastic user of Julia and enjoys contributing to various\r\npackages across the open source ecosystem, Julia standard libraries and\r\ncompiler. She love hearing about people's fascinating technical computing\r\nadventures of all types! Find her at /~https://github.com/c42f", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/7783BN/", "id": 44497, "guid": "58bcaac6-7a5c-5512-9e79-7f829b71b75c", "date": "2024-07-11T14:30:00+02:00", "start": "14:30", "logo": null, "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-44497-static-analysis-of-julia-code", "title": "Static Analysis of Julia Code", "subtitle": "", "track": "Julia Internals and Tooling", "type": "Talk", "language": "en", "abstract": "This talk will dive into the world of static analysis for Julia code, a key aspect of ensuring code quality, maintainability, and performance. We will explore the available tools and packages in Julia for static analysis and discuss best practices for integrating static analysis into the development workflow.", "description": "Julia, a high-level, high-performance dynamic programming language for technical computing, has seen a significant rise in adoption for data science, machine learning, and scientific computing. This talk will dive into the world of static analysis for Julia code, a key aspect of ensuring code quality, maintainability, and performance. We will explore the available tools and packages in Julia for static analysis and discuss best practices for integrating static analysis into the development workflow. The goal is to provide the audience with a comprehensive understanding of the static analysis landscape in Julia, enhancing their ability to write clean, efficient, and error-free code. The talk covers following Julia packages\r\n1. Lint.jl: Linting tool for detecting potential errors and code smells.\r\n2. StaticLint.jl: Static code analysis tool emphasizing code structure understanding.\r\n3. JuliaFormatter.jl: Code formatter for maintaining consistent coding styles.\r\n4. CodeTracking.jl: Utility for tracking code definitions.\r\n\r\nTalk Outline\r\n1. Introduction [5 minutes]\r\n2. Understanding Static Analysis [5 minutes]\r\n3. Demonstration of Static Analysis Tools in Julia [10 Minutes]\r\n4. Best Practices in Static Analysis [5 minutes]\r\n5. Conclusion and Q&A [5 minutes]", "recording_license": "", "do_not_record": false, "persons": [{"guid": "0d358e73-8238-518c-80eb-7a0abc4a6790", "id": 4277, "code": "CPJQQS", "public_name": "Gajendra Deshpande", "avatar": "https://pretalx.com/media/avatars/29e41e987c3d42e6649778c3cf54bd87_VipIIPj.jpg", "biography": "Gajendra Deshpande is a distinguished professional with an M.Tech. in Computer Science and Engineering from Visvesvaraya Technological University, Belagavi, along with a PG Diploma in Cyber Law and Cyber Forensics from the National Law School of India University, Bengaluru. He founded and currently manages EyeSec Cyber Security Solutions Private Limited in Belagavi.\r\n\r\nDeshpande is renowned for his extensive contribution to the tech community, having delivered over 100 talks and conducted more than 25 workshops at various esteemed international conferences, including JuliaCon 2023 at MIT, USA, EuroPython Ireland, PyCon MEA Dubai, PyCon APAC Japan, PyData Global, and many more across Europe, Asia and the USA. His expertise has guided teams to victory in the Smart India Hackathon and National Security Hackathon five times.\r\n\r\nAs an active member of PyCon India, Deshpande has played crucial roles, such as leading the Program Committee in 2021 and serving as the Mentorship Lead in 2023. He has been instrumental in organizing FOSSCon India 2019 and BelPy conferences. His commitment extends to various professional bodies, serving as the Vice Chair of the IEEE Young Professionals Affinity Group, Bangalore Section, and an Execom Member of IEEE NKSS. He is a Fellow Member of the Royal Statistical Society UK and maintains memberships with OWASP, the British Computer Society, and ACM. Deshpande has significantly contributed to Python, Julia, and FOSS Conferences by reviewing proposals, mentoring speakers, engaging in discussions, and organizing events.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/STRAXA/", "id": 44401, "guid": "7dd03136-cf4e-55cc-b50d-39b0a3a09564", "date": "2024-07-11T15:00:00+02:00", "start": "15:00", "logo": null, "duration": "00:10", "room": "REPL (2, main stage)", "slug": "juliacon2024-44401-infiltrator-jl-no-overhead-breakpoints-in-julia", "title": "Infiltrator.jl - No-Overhead Breakpoints in Julia", "subtitle": "", "track": "Julia Internals and Tooling", "type": "Lightning talk", "language": "en", "abstract": "Infiltrator.jl is a small utility package for interactively debugging performance sensitive Julia code with minimal runtime cost.", "description": "Most other debugging solutions for Julia either incur a significant runtime cost (JuliaInterpreter based debuggers) or bad ergonomics (println-based debugging is very limited in power, while gdb-based debuggers are very low-level compared to Julia code). Infiltrator.jl provides a middle ground -- it's a step up from println-debugging in that it provides an interactive REPL whenever a breakpoint is hit, but still functions at the source-code level without the runtime cost of an interpreter.\r\n\r\nThis talk will give a quick overview of Infiltrator.jl's implementation and showcase common workflows for debugging packages and applications.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "e0ad7eca-b54f-5e03-8bfa-a75cbbd7d0a2", "id": 1227, "code": "RCTGVS", "public_name": "Sebastian Pfitzner", "avatar": "https://pretalx.com/media/avatars/6735977_SittUir.jpg", "biography": "Sebastian is a software engineer at JuliaHub focusing on tooling around Julia, including the JuliaHub platform and the Julia extension for VS Code, as well as various other contributions to the Julia ecosystem.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/KMKBYH/", "id": 44236, "guid": "a6173fe0-880c-5ad7-879c-2e6886766bb2", "date": "2024-07-11T15:10:00+02:00", "start": "15:10", "logo": null, "duration": "00:10", "room": "REPL (2, main stage)", "slug": "juliacon2024-44236-codeevaluation-jl-emulating-julia-code-evaluations", "title": "CodeEvaluation.jl: emulating Julia code evaluations", "subtitle": "", "track": "Julia Internals and Tooling", "type": "Lightning talk", "language": "en", "abstract": "[CodeEvaluation.jl](/~https://github.com/JuliaDocs/CodeEvaluation.jl) and its companion [IOCapture.jl](/~https://github.com/JuliaDocs/IOCapture.jl) are two small Julia packages that offer simple interfaces for emulating(*) Julia code execution (e.g. when evaluating code examples in documents). The talk will give a brief overview of the packages' interfaces, and discusses the challenges of trying to emulate Julia code execution.", "description": "CodeEvaluation.jl is a higher-level package that offers an interface for executing Julia code snippets, and then capturing the outputs. You provide a code snippet as a string, and the package then tries to run it as if you pasted it into a clean REPL or started it as a script from the command line. The captured outputs aim to be a faithful representation of what you would see in the terminal.\r\n\r\nOne non-trivial piece of the puzzle is the output capture. IOCapture.jl is a lightweight package that offers a simple interface to capture outputs (in particular, the standard output and error streams, and also the output from the logging macros) from arbitrary code execution, hiding away the complexity from you.\r\n\r\nTheir main users for these packages is tooling that evaluates user-written code snippets, such as documentation and report generators. The code in these packages has been battle tested in the Documenter.jl code base for a long time, and is now factored out in the hopes is that it will be useful people writing similar tools.\r\n\r\nAcknowledgments: much of the hard implementation work was done by other contributors, and my main contribution here is factoring this into a separate package.\r\n\r\n(*) Just for clarity, the CodeEvaluation is not a Julia emulator, but evaluates the code snippets in the running Julia process. However, does tricks to make it look as if the code is running in a clean Main module.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "548e1cb5-b013-59eb-855e-ac2f6eda981b", "id": 1030, "code": "PMKEJN", "public_name": "Morten Piibeleht", "avatar": "https://pretalx.com/media/avatars/56dd0464231b9e36ee010756eb0dcd25_DsWFRDo.jpg", "biography": "Morten is a physicist & software engineer from Estonia, but based in Auckland, New Zealand. He's one of the maintainers Documenter.jl and the JuliaDocs package ecosystem, and works as a software engineer at JuliaHub.\r\n\r\nGitHub: [@mortenpi](/~https://github.com/mortenpi)", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/BB3VBA/", "id": 43507, "guid": "7f44b558-fafb-50eb-b1e3-d605234acbea", "date": "2024-07-11T15:20:00+02:00", "start": "15:20", "logo": null, "duration": "00:10", "room": "REPL (2, main stage)", "slug": "juliacon2024-43507-perfchecker-jl-convenient-version-based-performance-testing", "title": "PerfChecker.jl: Convenient version-based Performance Testing", "subtitle": "", "track": "Julia Internals and Tooling", "type": "Lightning talk", "language": "en", "abstract": "PerfChecker.jl is an interface to a set of tools to check the performance of packages in Julia in a version-based fashion.\r\n\r\nIt makes package dev's lives easier by providing: syntactic sugar, an API for other performance tools, visualization tools, REPL based-interactions, tests within isolated Julia processes, and hopefully more at the time of JuliaCon.\r\n\r\nPlease check /~https://github.com/JuliaConstraints/PerfChecker.jl for examples.", "description": "The basic philosophy of PerfChecker is to empower package developers with a comprehensive set of tools and functionalities to streamline performance benchmarking and analysis. It achieves this by introducing (some features are under development):\r\n\r\n* **Expressive and convenient macros to simplify performance profiling and analysis within Julia code.** These macros enable developers to effortlessly track performance metrics, identify bottlenecks, and optimize their code without the need for manual instrumentation.\r\n\r\n* **An extensive API that allows developers to integrate their preferred performance tools seamlessly into their workflow.** This flexibility ensures that developers can leverage the tools they are most familiar with and adapt PerfChecker to their specific needs.\r\n\r\n* **Interactive visualization tools to effectively visualize performance data, enabling developers to identify performance bottlenecks and trends.** These tools foster a more in-depth understanding of performance patterns and guide developers towards targeted optimizations.\r\n\r\n* **A user-friendly and interactive REPL interface for immediate performance testing and exploration of results.** This interface facilitates rapid feedback loops and enables developers to refine their code in real-time.\r\n\r\n* **Isolation of performance tests within independent Julia processes, ensuring accurate performance measurements unaffected by external factors.** This isolation ensures that performance results are reliable and representative of the actual code execution.\r\n\r\n**Code sample: `@check`**\r\n\r\nThe fundamental macro of our interface. We provide an implementation for allocations profiling and, through *Package Extension*, one for `BenchmarkTools.jl`. Here is an example for the `MyFakePackage.jl` package.\r\n\r\n```julia\r\nusing PerfChecker\r\nusing PrettyTables # for a nice output\r\n\r\nsettings = Dict(\r\n :targets => [\"MyFakePackage\"],\r\n :path => @__DIR__,\r\n)\r\n\r\nx = @check :alloc settings begin\r\n using MyFakePackage, OtherDependencies\r\n # Code to prepare the check script\r\n end begin\r\n # Actual script\r\nend\r\n\r\npretty_table(x |> to_table)\r\n```\r\n\r\nExamples for other packages such as `GLM.jl` or `PatternFolds.jl` can be found at [PerfChecker.jl/perf](/~https://github.com/JuliaConstraints/PerfChecker.jl/tree/main/perf)", "recording_license": "", "do_not_record": false, "persons": [{"guid": "af6b454a-8193-5c8a-b316-d329d29db912", "id": 10457, "code": "LZTBFS", "public_name": "Jean-Fran\u00e7ois BAFFIER (azzaare@github)", "avatar": "https://pretalx.com/media/avatars/jf-work_7Ydxgmb.jpg", "biography": null, "answers": []}, {"guid": "f2d37861-1d03-53c1-a583-2b2fdf1b72d9", "id": 39904, "code": "UFL7PT", "public_name": "Chetan Vardhan", "avatar": "https://pretalx.com/media/avatars/daffy_duck_angry_JtHXouv.png", "biography": "A graduate student from India, currently pursuing my Masters degree in the field of Mathematical and Computing Science in Tokyo, Japan.\r\nInterests include programming language design and quantum computing.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/UTGSDT/", "id": 43484, "guid": "b3bc04e5-3c6f-58c5-8b73-7f8bd5b80c63", "date": "2024-07-11T15:30:00+02:00", "start": "15:30", "logo": null, "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-43484-julia-compiler-secrets-static-analysis", "title": "Julia Compiler Secrets - Static Analysis", "subtitle": "", "track": "Julia Internals and Tooling", "type": "Talk", "language": "en", "abstract": "Effect analysis, exception types, escape analysis, effect preconditions, non-standard specialization, optimized generics - the compiler team has been busy. What is this all about?", "description": "The foundational capability of the Julia compiler from its earliest versions has been a very sophisticated inter-procedural type inference. To a large extent, the capabilities and limitations of this analysis (including such concepts as \"type stability\") determine which API designs are possible in Julia, and which are prohibitive from a performance standpoint.\r\n\r\nOver the past few releases and ongoing in current work, the static analysis capabilities of the Julia compiler have been expanded significantly and are no longer restricted solely to type inference. Julia 1.8 introduced the effect system to track additional properties, such as nothrow-ness, effectfulness and other properties. In Julia 1.11, the compiler started making use of escape analysis information for optimization and gained the capability to track and optimize exception types in addition to ordinary return types. Further enhancements are under consideration, including safer replacements of the `@inbounds` and `--check-bounds` macros.\r\n\r\nIn this talk we will look at the current and near future static analysis capabilities of the Julia compiler and explain how the Julia compiler uses these to make your code faster. In addition, we will discuss how these capabilities can be re-used for improving code correctness and how the general infrastructure in `Core.Compiler` can be extended to custom analyses.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "703b0ea2-7dd3-58bd-9bad-d3cc900fd0ad", "id": 39270, "code": "APZ3EA", "public_name": "Keno Fischer", "avatar": null, "biography": "Keno Fischer is one of the core developers of the Julia programming language and co-founder and CTO at JuliaHub. His earliest involvement with the Julia project was the port of Julia to Windows, the creation of (the current iteration of) the Julia REPL, the Julia optimizer, Julia\u2019s `--bug-report` feature as well as numerous other language features and packages. Within the Julia community, he is known for creating packages that push the boundary of possibilities of the language and ability to debug even the thorniest of issues. He holds an A.M. degree in Physics from Harvard University.", "answers": []}, {"guid": "0da01e29-9b5e-5d22-a21b-2da0b000b59f", "id": 4222, "code": "8BZR7G", "public_name": "Shuhei Kadowaki", "avatar": "https://pretalx.com/media/avatars/IMG_2045_Large_2_GtQdYin.jpeg", "biography": "SRE at JuliaHub, Inc. Working on the Julia compiler. Creator of JET.jl.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/FUTLND/", "id": 44458, "guid": "fa0b5dc1-c783-5601-8187-5171bf57e9a7", "date": "2024-07-11T16:00:00+02:00", "start": "16:00", "logo": null, "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-44458-new-ways-to-compile-julia", "title": "New Ways to Compile Julia", "subtitle": "", "track": "Julia Internals and Tooling", "type": "Talk", "language": "en", "abstract": "We will explain new options for ahead-of-time compilation of julia programs that we have been developing. First, there is a new compiler driver `juliac` that provides a more traditional gcc-like command-line interface. Next, we are adding new compiler modes that allow generation of smaller binaries by opting-in to assumptions that hold for some important classes of programs.", "description": "We will explain new options for ahead-of-time compilation of julia programs that we have been developing. First, there is a new compiler driver `juliac` that provides a more traditional gcc-like command-line interface. Next, we are adding new compiler modes that allow generation of smaller binaries by opting-in to assumptions that hold for some important classes of programs.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "97f72494-4700-56f4-b5fe-2819bb928fff", "id": 1177, "code": "JWDSCE", "public_name": "Jeff Bezanson", "avatar": "https://pretalx.com/media/avatars/jeff_bezanson_D4tclMh.jpeg", "biography": "Jeff is a co-creator of the Julia language and co-founder of JuliaHub, Inc.", "answers": []}, {"guid": "299ad72b-5e81-5819-ad36-227c53211c13", "id": 39186, "code": "LM9X99", "public_name": "Gabriel Baraldi", "avatar": "https://pretalx.com/media/avatars/file_5lWgAxo.jpg", "biography": "Compiler engineer at JuliaHub and open source enthusiast.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/MQXHT9/", "id": 44479, "guid": "aa79a633-4740-5099-94b7-0e67146c4fb7", "date": "2024-07-11T16:30:00+02:00", "start": "16:30", "logo": null, "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-44479-greenspeed-sustainable-chemical-synthesis-right-from-the-start", "title": "GreenSpeed: Sustainable Chemical Synthesis Right from the Start", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "\u201cGreenSpeed\u201d leverages Julia and the GenieFramework to calculate sustainability KPIs for the synthesis of complex organic chemicals. We cover the display of chemical reaction trees, their visualization in a Sankey Diagram and editable trees and tables to allow for the manual correction of incomplete or wrong datasets. We also show an admin panel for debugging, file modification and application of hotfixes.", "description": "We will showcase \"GreenSpeed\", an innovative industrial application developed using Julia and the GenieFramework. GreenSpeed enables Merck to calculate sustainability Key Performance Indicators (KPIs) for complex organic chemical synthesis, facilitating informed decision-making and driving positive environmental change.\r\n\r\nAttendees will learn how GreenSpeed integrates electronic lab journals, allowing users to assess the environmental impact of different substances and their reactions. The application employs dynamic tree structures and visualization techniques, such as the Sankey Diagram, to illustrate the flow of materials during synthesis processes as well as the completeness of the underlying data.\r\n\r\nBy utilizing Julia's computational power, GreenSpeed performs complex calculations and generates insightful visualizations, empowering businesses to make informed decisions about synthesis routes and optimize resource utilization. The application also supports dynamic selection fields, editable trees, and editable tables to allow for the manual correction of incomplete or wrong datasets. GreenSpeed's admin panel will be highlighted, providing system administrators with debugging tools, file modification capabilities, and the ability to apply hotfixes to ensure smooth operation and continuous improvement. The talk will present real-world examples, showcasing how Merck has utilized GreenSpeed to assess sustainability, identify improvement areas, and enhance production practices.\r\n\r\nIn summary, the talk will offer attendees a comprehensive overview of GreenSpeed's capabilities in calculating sustainability KPIs for complex organic chemical synthesis. The application utilizes Julia and the GenieFramework to enable powerful and flexible web-based sustainability assessment, empowering businesses to make informed decisions, optimize resource utilization, and ensure a greener future.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "01bd7287-4e42-5ee6-8e28-724a35a625ca", "id": 40006, "code": "MQLTM3", "public_name": "Helmut H\u00e4nsel", "avatar": "https://pretalx.com/media/avatars/Haensel_Helmut_600x600_P6zSA2S.png", "biography": "**Study of Physics**\r\n - *Universit\u00e4t Konstanz / Universit\u00e9 Joseph Fourier (Grenoble I)* \r\n - 1990 \u2013 1996\r\n\r\n**PhD in Physical Chemistry / Universit\u00e4t Bayreuth**\r\n - *Ludwig-Maximilians-Universit\u00e4t M\u00fcnchen*\r\n - 1996 \u2013 2004\r\n\r\n**Positions in Merck KGaA, Darmstadt Germany**\r\n - *Post Doc*\r\n - *R&D Manager - Liquid Crystal Research*\r\n - *Senior Expert Data Science*\r\n - 2006 \u2013 today", "answers": []}, {"guid": "e4585a25-b6e1-5e7c-84c9-ce874b070c31", "id": 40008, "code": "WJ3XRP", "public_name": "Sara Wirsing", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/NT7MUE/", "id": 45606, "guid": "6de14794-899f-5df2-a8a1-7b4befddb4dd", "date": "2024-07-11T17:30:00+02:00", "start": "17:30", "logo": null, "duration": "01:00", "room": "REPL (2, main stage)", "slug": "juliacon2024-45606-sonic-pi-live-coding-as-a-tool-for-next-gen-education-", "title": "Sonic Pi - Live Coding as a tool for next-gen education.", "subtitle": "", "track": "General", "type": "Keynote", "language": "en", "abstract": "Sonic Pi is a free code-based music creation and performance tool that targets both education and professional musicians. It is possible for beginners to code fresh beats, driving bass lines and shimmering synth riffs. All this whilst teaching core computer science concepts such as sequencing, functions, variables, loops, data structures and algorithms.\r\n\r\nThis talk will briefly introduce Sonic Pi before taking a deep technical nose-dive into some of the interesting requirements of live coding.", "description": "Sonic Pi is a free code-based music creation and performance tool that targets both education and professional musicians. It is possible for beginners to code fresh beats, driving bass lines and shimmering synth riffs. All this whilst teaching core computer science concepts such as sequencing, functions, variables, loops, data structures and algorithms.\r\n\r\nThis talk will briefly introduce Sonic Pi before taking a deep technical nose-dive into some of the interesting requirements of live coding systems. We'll touch on concurrency, distributed programming, temporal logic, deterministic randomisation, event streams, hot swapping code and domain specific languages.\r\n\r\nGet ready for some serious live coded beats and a window into an exciting future of computing education.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "e1da2add-418c-5dcc-aae0-749a69a0e076", "id": 43305, "code": "ZDCCMK", "public_name": "Sam Aaron", "avatar": "https://pretalx.com/media/avatars/image_3_NgEcm9M.png", "biography": "Dr Sam Aaron is the creator of Sonic Pi, an internationally renowned live coding performer, public speaker and science communicator. Sam has a PhD in Computer Science from Newcastle University and held a research position at the University of Cambridge Computer Laboratory where he initially developed Sonic Pi.", "answers": []}], "links": [], "attachments": [], "answers": []}], "Struct (1.4)": [{"url": "https://pretalx.com/juliacon2024/talk/8JTLHZ/", "id": 43881, "guid": "33d66970-de88-554d-b49c-7a9fa985fe07", "date": "2024-07-11T10:00:00+02:00", "start": "10:00", "logo": null, "duration": "01:00", "room": "Struct (1.4)", "slug": "juliacon2024-43881-needs-and-next-steps-for-julia-s-sciml", "title": "Needs and Next Steps for Julia's SciML", "subtitle": "", "track": "SciML", "type": "Birds of Feather (BoF)", "language": "en", "abstract": "What do you need? Come to this BoF to discuss how you are using SciML today, what issues you are running into, and what needs to be done for improving the future of Julia's SciML stack!", "description": "What are your biggest issues? Scaling in Optimization.jl? More tutorials in ModelingToolkitStandardLibrary.jl? It's always hard for the developers to know the general prioritization sentiment of the community, and thus this BoF is made to get a sample from users to better understand the needs of the community.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "6ab02490-d781-5300-94af-5f4ffbefbdff", "id": 904, "code": "WUWQQ3", "public_name": "Chris Rackauckas", "avatar": "https://pretalx.com/media/avatars/ChristopherRackauckas101_Rl0yCrY.jpg", "biography": "Dr. Chris Rackauckas is the VP of Modeling and Simulation at JuliaHub, the Director of Scientific Research at Pumas-AI, Co-PI of the Julia Lab at MIT, and the lead developer of the SciML Open Source Software Organization. For his work in mechanistic machine learning, his work is credited for the 15,000x acceleration of NASA Launch Services simulations and recently demonstrated a 60x-570x acceleration over Modelica tools in HVAC simulation, earning Chris the US Air Force Artificial Intelligence Accelerator Scientific Excellence Award. See more at https://chrisrackauckas.com/. He is the lead developer of the Pumas project and has received a top presentation award at every ACoP in the last 3 years for improving methods for uncertainty quantification, automated GPU acceleration of nonlinear mixed effects modeling (NLME), and machine learning assisted construction of NLME models with DeepNLME. For these achievements, Chris received the Emerging Scientist award from ISoP.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/BXJWED/", "id": 43910, "guid": "fd002382-0d71-51b1-8260-7761a3caaaaf", "date": "2024-07-11T14:00:00+02:00", "start": "14:00", "logo": null, "duration": "01:00", "room": "Struct (1.4)", "slug": "juliacon2024-43910-binarybuilder-bof", "title": "BinaryBuilder BoF", "subtitle": "", "track": "Julia Internals and Tooling", "type": "Birds of Feather (BoF)", "language": "en", "abstract": "Come to this BoF to discuss the recent massive changes in BinaryBuilder and to discuss further development of ecosystem-wide improvements. Applicable topics include: improvements to BinaryBuilder proper, improvements to Yggdrasil and surrounding infrastructure, improvements to JLLs, applications of the new modularized BinaryBuilder ecosystem to new projects, and more!", "description": "[BinaryBuilder](https://binarybuilder.org/) is a fundamental piece of the infrastructure underpinning Julia: it's used to compile most of the binary libraries used throughout the ecosystem, including those used by Julia itself.\r\n\r\nBinaryBuilder has undergone significant changes over the last year, see the talk \"Binary Builder 2: Return of the Compilers\" for a guided tour of many of the improvements and refactorings. In particular, the structure of BinaryBuilder has been split apart into multiple separate sub-packages that can each be used in isolation. This allows, for instance, a package that needs to compile C code to make use of the BB compiler toolchain without actually using all of BB itself, or a package that needs to inspect binaries for relocatability to do so in isolation.\r\n\r\nThis BoF is intended to facilitate discussion between developers and users of the BinaryBuilder ecosystem to better understand these changes and how they can impact the ecosystem at large. Topics of discussion could include:\r\n- Improvements to BinaryBuilder proper\r\n- Improvements to Yggdrasil and surrounding infrastructure\r\n- Improvements to JLLs\r\n- Applications of the new modularized BB ecosystem to new projects", "recording_license": "", "do_not_record": false, "persons": [{"guid": "922c7984-f3e3-58ea-82a5-a37f598b09db", "id": 1080, "code": "B98NWS", "public_name": "Elliot Saba", "avatar": "https://pretalx.com/media/avatars/mugshot_bkDhIwg.png", "biography": "Elliot has been a core developer on the Julia language project for over ten years. He is one of the primary authors of the BinaryBuilder.jl project and associated efforts. He is currently the Director of EDA Engineering at JuliaHub, working on the CedarEDA suite of circuit simulation tools.", "answers": []}, {"guid": "0bdcf3dd-f493-5992-a04c-54716e0accef", "id": 2405, "code": "ST7KZT", "public_name": "Mos\u00e8 Giordano", "avatar": "https://pretalx.com/media/avatars/b1b9938790729d96af6f168d8ce0f917_1tjV3U5.jpg", "biography": null, "answers": []}, {"guid": "696a4999-e24f-5ec0-9f1c-df59b05eb983", "id": 903, "code": "3C7UBC", "public_name": "Valentin Churavy", "avatar": null, "biography": "PhD student at the MIT JuliaLab", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/V99NUF/", "id": 44414, "guid": "c8eae919-b362-5c1a-b6a1-aa393e2ae17f", "date": "2024-07-11T15:00:00+02:00", "start": "15:00", "logo": null, "duration": "01:00", "room": "Struct (1.4)", "slug": "juliacon2024-44414-rust-and-julia-birds-of-a-feather", "title": "Rust and Julia - Birds of a Feather", "subtitle": "", "track": "General", "type": "Birds of Feather (BoF)", "language": "en", "abstract": "Rust keeps gaining ground across the software world! How can we best learn and exchange algorithms and best practices?", "description": "Last year's Rust BoF was a smash success, with a full room and dozens of participants. We should step up and reach out to the burgeoning Rust audience in NL and across the globe by making decisions about what Julia can learn from Rust and vice versa.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "1f460c05-7e86-53a2-b526-fdde637cd139", "id": 1182, "code": "JE89PF", "public_name": "Miguel Raz Guzm\u00e1n Macedo", "avatar": "https://pretalx.com/media/avatars/d99ee1f43735c47968810bad35938825_c4q16DR.jpg", "biography": "Julia. Rust. Wannabe time bandit.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/MWS3FD/", "id": 44434, "guid": "1bab9779-77ce-508b-a755-94ff750f4568", "date": "2024-07-11T16:00:00+02:00", "start": "16:00", "logo": null, "duration": "01:00", "room": "Struct (1.4)", "slug": "juliacon2024-44434-juliagpu-bof", "title": "JuliaGPU BoF", "subtitle": "", "track": "Accelerated & large-scale computing", "type": "Birds of Feather (BoF)", "language": "en", "abstract": "The JuliaGPU community welcomes both long-standing contributors and newcomers to a birth-of-the feather event on the state of the JuliaGPU ecosystem.", "description": "The JuliaGPU ecosystem enables Julia to run on a wide variety of accelerators ranging from traditional GPUs like NVIDIA, Intel or AMD to more interesting ones like IPUs. The meeting gives users and developers alike the opportunity to exchange ideas.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "696a4999-e24f-5ec0-9f1c-df59b05eb983", "id": 903, "code": "3C7UBC", "public_name": "Valentin Churavy", "avatar": null, "biography": "PhD student at the MIT JuliaLab", "answers": []}, {"guid": "1753c868-8009-5e3f-8ef2-d41814e855bc", "id": 39982, "code": "YCSEJ8", "public_name": "Katharine Hyatt", "avatar": null, "biography": "Awesome person", "answers": []}, {"guid": "0a4c7a69-8f93-5b28-96f6-a49c96036e90", "id": 2402, "code": "9YQMAK", "public_name": "Tim Besard", "avatar": "https://pretalx.com/media/avatars/311f28d70bb1de3b0e9bb55e9d5fd26d_d4DEMi8.jpg", "biography": "Software engineer at JuliaHub.", "answers": []}], "links": [], "attachments": [], "answers": []}], "Method (1.5)": [{"url": "https://pretalx.com/juliacon2024/talk/QDZFWW/", "id": 44409, "guid": "1be146cf-d927-5694-a3ff-a3da7aebb275", "date": "2024-07-11T10:00:00+02:00", "start": "10:00", "logo": null, "duration": "00:30", "room": "Method (1.5)", "slug": "juliacon2024-44409-juliasimbatteries-jl-robust-pde-models-of-lithium-ion-batteries", "title": "JuliaSimBatteries.jl: Robust PDE Models of Lithium-ion Batteries", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "Lithium-ion battery models are highly nonlinear systems of stiff, partial differential-algebraic equations (PDAEs). It is challenging to robustly solve the system of equations over a range of inputs and parameters \u2013 many commercial and open-source battery modeling tools are prone to sporadic failure stemming from issues in setting up, initializing, and solving these systems. This talk discusses these pitfalls and the solutions implemented in the JuliaSimBatteries.jl package.", "description": "JuliaSimBatteries is an advanced lithium-ion battery simulation tool integrating sophisticated electrochemical, thermal, and degradation physics. Utilizing the Doyle Fuller Newman (DFN) model, it can predict a battery's entire lifetime with fast charging 150,000 times faster than real time. The number of connected batteries is scalable from one cell to packs of thousands using electrochemical models. Scientific Machine Learning (SciML) enables the discovery of hidden governing laws from data, such as degradation and low-temperature behavior. Characterize material properties and propose battery designs using the parameter estimation and optimization tools in JuliaSim.\r\n\r\nBuilding accurate models are essential for understanding, optimizing, and designing batteries. Physically accurate battery models are computationally expensive and difficult to solve robustly. JuliaSimBatteries is more than 100 times faster than other battery modeling tools while solving the same physics, thanks to the speed of the Julia programming language. Bring your battery workflow to the next level to solve challenging problems:\r\n- Pack modeling \u2013 JuliaSimBatteries is performant and enables the predictive power of electrochemical models for large-scale battery packs.\r\n- Uncertainty quantification \u2013 Uncertainty is inherent in battery modeling. JuliaSimBatteries helps mitigate and understand the root causes of uncertainty with JuliaSim Model Optimizer.\r\n- Fast charging \u2013 Built for robust and efficient simulations, even at the extreme operating conditions of fast-charge.\r\n- Degradation \u2013 Predict battery lifetime and health with SEI capacity fade models.\r\n- Discover hidden physics \u2013 Combine physics from our battery models and your data to discover hidden governing laws using SciML tools.\r\n- Lifetime prediction \u2013 Estimate a battery's entire lifetime with fast charging in under a minute with the DFN model.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "48a1e237-c03b-5711-8b40-b2be8234753f", "id": 39190, "code": "RPTABV", "public_name": "Marc D. Berliner", "avatar": null, "biography": "Dr. Marc D. Berliner is the lead developer of JuliaSim Batteries at JuliaHub, Inc. He received his Ph.D. from the MIT Department of Chemical Engineering, where his work focused on high-performance simulation of physics-based lithium-ion battery models, parameter estimation techniques, and optimal charging algorithms.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/XQEBNS/", "id": 43492, "guid": "0b98eaee-241a-5c6f-a5dd-60def6bea413", "date": "2024-07-11T10:30:00+02:00", "start": "10:30", "logo": null, "duration": "00:30", "room": "Method (1.5)", "slug": "juliacon2024-43492-fast-probabilistic-inference-for-odes-with-probnumdiffeq-jl", "title": "Fast probabilistic inference for ODEs with ProbNumDiffEq.jl", "subtitle": "", "track": "Math(s)", "type": "Talk", "language": "en", "abstract": "ProbNumDiffEq.jl implements probabilistic numerical ODE solvers for the DifferentialEquations.jl ecosystem. These methods intepret \"solving an ODE\" as a probabilistic inference task, and they return a probabilistic estimate of the numerical solution and approximation error. Under the hood, this is done with extended Kalman filtering - but to the user, it looks like any other DifferentialEquations.jl solver. This talk presents ProbNumDiffEq.jl, its functionality, and some implementation details.", "description": "_Probabilistic numerical methods_ interpret numerical problems as problems of Bayesian inference, and then solve them accordingly. For ODEs, one popular class of such methods treats ODEs as Bayesian state estimation problems, and then essentially solves the ODE with a Bayesian filtering and smoothing method such as the extended Kalman filter. [ProbNumDiffEq.jl](/~https://github.com/nathanaelbosch/ProbNumDiffEq.jl) provides an efficient implementation of these methods and makes them availabe in the the DifferentialEquations.jl ecosystem.\r\n\r\nThis talk starts with a brief introduction to probabilistic numerics and to probsbilistic ODE solvers, and then presents ProbNumDiffEq.jl. We will cover some example usages for different problem types, then dive into some implementation details that matter to make these solvers stable and fast, share some experiences on working with other Julia packages, and discuss the future prospects of probabilistic numerics within the Julia ecosystem.\r\n\r\n### Features of ProbNumDiffEq.jl\r\nFor a new user, ProbNumDiffEq.jl looks just like a standard ODE solver library and it covers many features that users often want from solvers:\r\n- Explicit and semi-implicit solvers of varying order\r\n- Specialized solvers:\r\n - for second-order ODEs\r\n - for Manifolds (using a specific callback)\r\n - Exponential integrators\r\n - Rosenbrock-type exponential integrators\r\n- Adaptive step-size selection (inherited from OrdinaryDiffEq.jl)\r\n- Dense output\r\n- Plotting\r\n- Callback support (inherited from OrdinaryDiffEq.jl)\r\n- All solvers are compatible with mass-matrix DAEs\r\nIn addition, ProbNumDiffEq.jl also has many features that relate to the probabilistic formulation of the solves, and provides a range of _priors_, multiple _calibration_ approaches, and a _likelihood model_ for parameter estimation.\r\n\r\n### Links\r\n- **Github repository:** /~https://github.com/nathanaelbosch/ProbNumDiffEq.jl\r\n- **Tutorial** Getting started with ProbNumDiffEq.jl: https://nathanaelbosch.github.io/ProbNumDiffEq.jl/dev/tutorials/getting_started/\r\n- **References:** https://nathanaelbosch.github.io/ProbNumDiffEq.jl/dev/references/", "recording_license": "", "do_not_record": false, "persons": [{"guid": "506ce23f-4927-5185-9004-712ded9f3f55", "id": 10432, "code": "NHKMML", "public_name": "Nathanael Bosch", "avatar": "https://pretalx.com/media/avatars/25008422_C4VSoos.jpg", "biography": "I am a PhD student in machine learning at the University of T\u00fcbingen and the International Max Planck Research School for Intelligent Systems (IMPRS-IS), supervised by Prof. Dr. Philipp Hennig. I'm interested in probabilistic machine learning for and with dynamical systems, with a focus on probabilistic numerics: by treating numerical simulation as a probabilistic inference problem, we develop new methods that efficiently quantify their numerical error and enable new ways to do data-driven inference in dynamical systems.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/XBSX87/", "id": 42841, "guid": "a7086c20-3095-50bf-9dd0-e10f83f1bac0", "date": "2024-07-11T11:00:00+02:00", "start": "11:00", "logo": null, "duration": "00:10", "room": "Method (1.5)", "slug": "juliacon2024-42841-fmiexchange-jl-foreign-models-through-a-familiar-interface", "title": "FMIExchange.jl: Foreign Models Through a Familiar Interface", "subtitle": "", "track": "General", "type": "Lightning talk", "language": "en", "abstract": "The Functional Mock-Up Interface is a tool-independent standard for implementing and describing models given by differential algebraic equations with events. FMIExchange.jl integrates such models with DifferentialEquations.jl, thereby retaining the full capabilities of that package. The resulting functionality forms a powerful extension to that of the existing FMI.jl package, allowing the user to simulate complex systems with multiple native and FMI-compliant components.", "description": "The Functional Mock-Up Interface (FMI) standard allows to exchange models between different software programs. To simulate FMI-compliant models (functional mock-up units, FMUs), Julia currently relies on the FMI.jl package and its subpackages, but these packages do not cover all use cases: FMI.jl does not allow to simulate multiple FMUs simultaneously, nor to cosimulate FMUs and native Julia differential equations. FMI.jl implements basic input/output functionality to interact with FMUs, but the interface is difficult to use when FMU inputs change at different timescales. More advanced functionality requires directly interacting with FMU objects, which is not user-friendly. FMIExchange.jl aims to solve these issues by leveraging the well-known interface of DifferentialEquations.jl and combining it with the functionality of the existing FMI simulation suite.\r\n\r\nFMIExchange.jl wraps FMUs in structs such that they can be used in a traditional differential equation (DE) solver as implemented in the SciML ecosystem. FMIExchange.jl automatically generates appropriate callbacks to detect and trigger events in the FMU, and mimics the traditional DifferentialEquations.jl interface for obtaining derivatives. FMU inputs and outputs are handled by using the parameter argument \"p\" as a memory buffer to store them. Manipulating this buffer using the callback library provided by the SciML ecosystem provides many ways to interact with the simulation. Typical examples are implementing digital controllers or defining interactions between different models.\r\n\r\nIt is possible to combine multiple FMUs and native Julia DEs in one simulation by subdividing the memory buffer into sections. To simplify this process, FMIExchange.jl provides tools to automatically assign and keep track of addresses and to perform common operations such as connecting model inputs and outputs. All this functionality is available for both native DEs and FMUs, such that the user can interact with all simulation components in an implementation-agnostic way.\r\n\r\nThe presentation will briefly introduce the FMI standard and then discuss the design of FMIExchange.jl. The package will be demonstrated on a case study involving model-predictive control of multiple flexible electrical loads in a residential building. The case study combines multiple FMUs and native ODEs in a single simulation, showing FMIExchange.jl in action in a realistic context.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "0af44307-915a-520e-96b4-0196d91e48a2", "id": 37167, "code": "TAE3UL", "public_name": "Lucas Bex", "avatar": "https://pretalx.com/media/avatars/Pasfoto2_compressed2_G6tOEAz.jpg", "biography": "Lucas Bex obtained his Bachelor's in electrical engineering (2020) and Master's in energy engineering (2022) from KU Leuven. He is currently pursuing a PhD in Electrical engineering at Electa - ESAT KU Leuven. His research interests are demand response, energy systems modelling, and advanced control methods for electrical power systems.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/JDPTKN/", "id": 44371, "guid": "18967fc6-cfde-5c7a-a3cb-7c7190fa0491", "date": "2024-07-11T11:10:00+02:00", "start": "11:10", "logo": "https://pretalx.com/media/juliacon2024/submissions/JDPTKN/herb_blue_white_background_TPRbo5W.png", "duration": "00:10", "room": "Method (1.5)", "slug": "juliacon2024-44371-herb-jl-teaching-programs-how-to-program-with-program-synthesis", "title": "Herb.jl: Teaching programs how to program with program synthesis", "subtitle": "", "track": "General", "type": "Lightning talk", "language": "en", "abstract": "Wouldn\u2019t it be great if Julia would program itself? You simply tell it what you want, Julia magic happens, and you have your program. While this is still a farfetched dream, in this talk we will introduce you to Herb.jl, a Julia library that gets us a step closer to our big goal.", "description": "`Herb.jl` is a library for program synthesis: the task of automatically generating (not just)\r\nprograms from a given specification. \r\n\r\n`Herb.jl`\u2019s main goal is therefore two-fold. First, it aims to provide a missing toolbox for developing new program synthesizers, which is currently missing in the community. Second, it aims to unify many different flavours of program synthesis under a joint framework, making existing program synthesizers easy to use on new problems.\r\n\r\nIn this talk we show how Julia facilitates the library development on one hand, but also algorithm speed and composability of the synthesis procedure.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "ec7a8cb4-02f0-5b44-927c-05bd428a7cf5", "id": 39951, "code": "RAAER3", "public_name": "Tilman Hinnerichs", "avatar": "https://pretalx.com/media/avatars/profile_pic_downsampled_A8as3NS.jpg", "biography": "I am a PhD student for Computer Science within the PONY lab with Sebastijan Dumancic and Neil Yorke-Smith, researching in the field of program synthesis, neuro-symbolic proving and reasoning, and their application to bioinformatics.\r\n\r\nCheck out [my website](tilman.hinnerichs.com) for more information.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/SHQVE7/", "id": 44442, "guid": "24f0fc0b-f5cd-55b8-8dd5-b6497c0912d8", "date": "2024-07-11T14:00:00+02:00", "start": "14:00", "logo": null, "duration": "00:10", "room": "Method (1.5)", "slug": "juliacon2024-44442-lessons-learned-from-lessons-given-data-science-and-dynamics-", "title": "Lessons Learned from Lessons Given (Data Science and Dynamics)", "subtitle": "", "track": "Data Science and Dynamics", "type": "Lightning talk", "language": "en", "abstract": "In the winter term of 2023, the course \u201cData Science for Dynamical Systems\u201d was introduced at Paderborn University (Germany). This immersive experience, combining video lectures, Julia code examples as well as Jupyter notebook exercises, challenged and engaged students, faculty, and teaching assistants alike. Motivated by the positive student feedback, I want to share our insights and talk about the course topics and infrastructure, and how students were introduced to the vast Julia ecosystem.", "description": "Traditionally, most STEM courses at our university are accompanied by MATLAB or Python coding exercises. Breaking from this tradition, the use of Julia notebooks in Data Science for Dynamical Systems was meant to showcase the language as an accessible alternative. The scope of the course ranged from solving simple ODEs over Optimization and Model Identification as well as Optimal Control, allowing us to present many popular packages for scientific computing. In addition to the change in exercise design, the lecturers opted for a hybrid teaching approach, so that all lecture videos can be found on YouTube.\r\nAll in all, the course was very well received, and I am going to detail the course subjects and our Jupyter setup. I will also quote some insights from the lecturers, assistants and the students, to finally evaluate what to keep and what to change in possible future versions.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "f1367dcf-c950-5b75-b2a7-9caec2ed47ca", "id": 10389, "code": "W7Q33Z", "public_name": "Manuel Berkemeier", "avatar": "https://pretalx.com/media/avatars/profile_pic_aUYBmHB.png", "biography": "Currently working as a PhD student at Paderborn University in the Computer Science Department.\r\nI am part of the Data Science for Engineering group of Professor Peitz.\r\nMy focus lies on nonlinear optimization and multi-objective optimization.\r\nThese where also my main areas of research when I studied for the master's degree in Applied Mathematics, which I obtained in 2019.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/WXTMWP/", "id": 42990, "guid": "99b96f38-4764-5609-bf74-676c10553b3b", "date": "2024-07-11T14:10:00+02:00", "start": "14:10", "logo": "https://pretalx.com/media/juliacon2024/submissions/WXTMWP/Boston_restaurant_sGcTKL2_IjoChvf.png", "duration": "00:10", "room": "Method (1.5)", "slug": "juliacon2024-42990-working-with-open-street-map-spatial-data-in-julia", "title": "Working with Open Street Map spatial data in Julia", "subtitle": "", "track": "Data Science and Dynamics", "type": "Lightning talk", "language": "en", "abstract": "OpenStreetMap provides freely available data about transportation networks as well as parking spaces, schools, businesses, shops, restaurants, cafes, parking spaces, hospitals. In this talk a set of Julia packages for the manipulation of map data will be presenting, allowing processing road system information, vehicle routing as well as data scraping from maps for understanding the urban space. \r\nPresented Julia packages include OpenStreetMapX and OSMToolset.", "description": "During the talk tools and frameworks in Julia for working with spatial data will be presented. The presented Julia packages include OpenStreetMapX.jl for parsing of OSM and PBF formatted Open Street Map data, along with OpenStreetMapXPlot for plotting maps and OSMToolset for extraction of point-of-interest data from maps. Special attention will be given to the new package, OSMToolset, a pure Julia library that facilitates efficient scraping of various metadata from maps, including amenities, schools, cafes, restaurants, and parking spaces.\r\n\r\nThe talk will emphasize practical examples and code snippets for processing spatial data, simulating vehicle routing, and building spatial walkability indexes. This presentation will also feature a Jupyter Notebook with a live demonstration of various processing patterns for spatial data.\r\n\r\nAcknowledgments: This presentation was funded in whole by National Science Centre, Poland grant number 2021/41/B/HS4/03349.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "bbf53041-544b-5d87-9b34-c01f53854d57", "id": 1089, "code": "HNA89P", "public_name": "Przemys\u0142aw Szufel", "avatar": "https://pretalx.com/media/avatars/przemyslaw_szufel_kadrowane600x750_zE0iQfb.jpg", "biography": "Przemys\u0142aw Szufel is an Assistant Professor at SGH Warsaw School of Economics, Adjunct Professor at Toronto Metropolitan University. His main research focus is applying advanced analytics methods, and in particular, machine learning, simulation and optimization in modelling in bringing new value to business processes. He is a co-author of several tools and algorithms for optimal and cost efficient collection and analysis of large data sets in the cloud. He is a co-author of over 40 publications, including handbooks and journal papers, in the area of applying advanced analytics, machine learning and simulation methods to making optimal business decisions. He is an active member of the Julia language community - maintains 4 official Julia packages and has 2nd place answering Julia-related questions on StackOverflow. He is a co-author of book \u201cJulia 1.0 Programming Cookbook: Over 100 numerical and distributed computing recipes for your daily data science workflow\u201d. Przemys\u0142aw is also co-managing SilverDecisions.pl project (that aims for representing and supporting business decisions), which has been elected by the European Commission to the Innovation Radar programe, grouping the best innovations financed by the EU funds.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/PV7EPE/", "id": 44199, "guid": "8c04aa11-f8e0-5c2f-8be0-f4d46bff181d", "date": "2024-07-11T14:20:00+02:00", "start": "14:20", "logo": null, "duration": "00:10", "room": "Method (1.5)", "slug": "juliacon2024-44199-spatialdependence-jl-exploratory-spatial-data-analysis", "title": "SpatialDependence.jl: exploratory spatial data analysis", "subtitle": "", "track": "Data Science and Dynamics", "type": "Lightning talk", "language": "en", "abstract": "SpatialDependence.jl is a Julia package for exploratory spatial data analysis (ESDA), spatial weight creation, and testing for spatial dependence (spatial autocorrelation). The package contains functions to create and handle spatial weights matrices from polygon and point geometries. It also has functions for calculating spatial lags, testing for global and local spatial autocorrelation, and plotting choropleth maps.", "description": "The package SpatialDependence.jl contains functions to create and handle spatial weights matrices from polygon and point geometries. It also has functions for calculating spatial lags, testing for spatial autocorrelation, and plotting choropleth maps.\r\n\r\nThe talk will show how the SpatialDependence.jl package introduces an architecture for handling spatial weight matrices representing the observation's spatial relationship. The integration with GeoInterface.jl allows the creation of spatial weight matrices from polygons and points geometry obtained from different data sources.\r\n\r\nWe present how to plot choropleth maps using different algorithms to classify observations. In addition, global and local spatial autocorrelation statistics can tell us if geographically close observations have similar or dissimilar values and help us to identify clusters.\r\n\r\nDuring the talk, we will briefly describe the package's capabilities in a non-technical language, and how was the experience in developing it in the Julia language.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "33057406-ce7d-5e46-a232-08caaa2bb973", "id": 4304, "code": "CMLBZP", "public_name": "Javier Barbero", "avatar": "https://pretalx.com/media/avatars/Foto_JavierBarbero_WZESLSI.png", "biography": "I am a Lecturer in Economics at the Department of Economic Analysis at Universidad Aut\u00f3noma de Madrid (UAM).", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/FHLY8D/", "id": 44374, "guid": "91e9f631-7542-532a-bc5a-7da76fc8ca1d", "date": "2024-07-11T14:30:00+02:00", "start": "14:30", "logo": null, "duration": "00:30", "room": "Method (1.5)", "slug": "juliacon2024-44374-data-dynamics-for-solar-energy-and-wind-forecasting", "title": "Data Dynamics for Solar energy and Wind forecasting", "subtitle": "", "track": "Data Science and Dynamics", "type": "Talk", "language": "en", "abstract": "The field of Data Dynamics deals with how data changes over time. The Solar Energy Prediction and Wind Forecasting challenges are intricate issues that necessitate precise forecasts utilizing machine learning and deep learning models. \r\nWe used Julia Programming language and packages such as MLJ.jl, TimeSeries.jl, GeoStats.jl, DifferentialEquations.jl, and DataFrames.jl for implementation, prediction, and forecast of solar energy production and wind patterns.", "description": "The field of Data Dynamics deals with how data changes over time. The Solar Energy Prediction and Wind Forecasting challenges are intricate issues that necessitate precise forecasts utilizing machine learning and deep learning models. These contests aim to enhance the dependability and effectiveness of renewable energy sources by utilizing data dynamics to improve forecasting accuracy. These predictions contribute to more efficient energy management and utilization.\r\n\r\nWhen attempting to anticipate solar and wind energy production for a given period, our main objective is to estimate the quantity of energy that will be generated by solar and wind power facilities at a particular location and time. This involves analyzing multiple factors, including weather patterns, cloud coverage, wind velocity, and the position of the sun to the Earth's rotation. These forecasts are valuable in optimizing the functioning of power grids, scheduling maintenance activities, and guaranteeing an adequate energy supply to meet the demand.\r\n\r\nJulia is a high-performance programming language that is widely used for technical computing. It offers a range of packages that can be effectively employed to address various challenges. For instance, when it comes to predicting solar energy, Julia's packages such as Flux. jl (for deep learning), MLJ.jl (for machine learning), and TimeSeries.jl (for time series analysis) can be instrumental. Similarly, for wind forecasting, packages such as GeoStats.jl (for geostatistical modeling), DifferentialEquations.jl (for modeling dynamic systems), and DataFrames.jl (for data manipulation) can be utilized to build robust predictive models. We aim to create models that dynamically adapt to changing environmental conditions, using real-time data to improve accuracy in predicting solar energy production and wind patterns. Our solution strives to optimize energy grid management by implementing cutting-edge algorithms, facilitating the seamless integration of solar and wind power into the broader energy landscape", "recording_license": "", "do_not_record": false, "persons": [{"guid": "8772abd7-fb85-55c6-be89-d761ccb1a327", "id": 38748, "code": "LPZYRG", "public_name": "Neelambika Shivaputra Fatakal", "avatar": null, "biography": "My name is Neelambika Fatakal, and I'm currently a third-year B.E. student pursuing a course in Artificial Intelligence and Data Science at Angadi Institute of Technology and Management, Belagavi, Karnataka, India. Currently, I am working on a project with time series analysis.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/GKJYBE/", "id": 44109, "guid": "daf149f0-fe40-572b-96c1-63ba143b3d43", "date": "2024-07-11T15:30:00+02:00", "start": "15:30", "logo": null, "duration": "00:30", "room": "Method (1.5)", "slug": "juliacon2024-44109-using-julia-as-part-of-an-anomaly-detection-pipeline", "title": "Using Julia as part of an Anomaly Detection pipeline", "subtitle": "", "track": "Data Science and Dynamics", "type": "Talk", "language": "en", "abstract": "Julia is a great multi-purpose language, but it also fits in as a component in a larger multi-language ecosystem. At Akamai, we use Julia as part of our data pipeline to do Anomaly Detection and Alerting on web performance data.\r\n\r\nIn this talk, I'll cover the tasks delegated to Julia as well as how it fits into the rest of our development and operations stack.", "description": "Julia is very good at running data analysis on columnar data and temporal data, ie, the kind of data we have a lot of where I work. We have packages to do regression analysis, hypothesis testing, signal processing, and more, allowing our development team to focus on business logic and data pipelines.\r\n\r\nIn this talk, we'll cover how our Data Scientists use Julia to analyze data, and develop algorithms that can then be operationalized into a real time data pipeline and we'll see how Julia complements a Java based web application that handles data collection and alerting.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "189edc0f-5e9a-5971-b4db-7c8a762435df", "id": 36643, "code": "3WRLPN", "public_name": "Philip Tellis", "avatar": "https://pretalx.com/media/avatars/philiptellis-velocity-mugshot-500px_eSyDph6.jpg", "biography": "Philip Tellis is a geek who likes to make the computer do his work for him. As Principal RUM Distiller at Akamai, he analyses the impact of various design decisions on web application performance, scalability and security. He is the creator of \"boomerang\" -- a JavaScript based web performance measurement tool.\r\n\r\nIn his spare time, Philip enjoys cycling, reading, cooking and learning spoken languages.\r\n\r\nHe has been developing with Julia since version 0.2 and recently completed a large migration from Julia 0.4 to 1.6.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/PGQWSM/", "id": 44484, "guid": "7633f8e6-5921-5bfd-b6ef-aced61d41c24", "date": "2024-07-11T16:00:00+02:00", "start": "16:00", "logo": null, "duration": "00:30", "room": "Method (1.5)", "slug": "juliacon2024-44484-strategic-data-handling-in-julia", "title": "Strategic Data Handling in Julia", "subtitle": "", "track": "Data Science and Dynamics", "type": "Lightning talk", "language": "en", "abstract": "Strategic Data Handling in Julia: Embracing Base Types for Business Impact\r\n\r\nThis talk caters to data analysts and scientists transitioning to Julia who are used to Pandas-centered workflows. We dissect the pros and cons of employing DataFrames versus Julia\u2019s base types within a business setting, providing use case insights from our industry applications.", "description": "The talk targets Julia coders, who may not fully exploit its performance \r\ncapabilities due to a reliance on DataFrames. We will discuss the balance between development time, robustness, and performance, emphasizing time-to-value. Our aim is to provide attendees with strategies to maximize business outcomes when resources are constrained.\r\n\r\nAttendees will learn to craft performant Julia code by employing arrays, structs, matrices, and dictionaries, which not only boost performance but also simplify logic testing. We\u2019ll offer practical examples and refactoring tactics to transition from DataFrames to Julia\u2019s more potent base types. Furthermore, we'll provide insight into the decision-making process for choosing the right data structure in varied business scenarios.\r\n\r\nParticipants will leave with a solid grasp of when to opt for DataFrames or Julia\u2019s base types, grounded in practicality for business use. They will appreciate Julia's prowess in type stability and memory management for superior data handling. Resources for continued education and best practices will be shared to aid attendees in becoming adept Julia programmers for commercial applications.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "92c0fc05-6179-5308-a864-3ca411223bd4", "id": 40007, "code": "EHRVDJ", "public_name": "Christian Hower", "avatar": null, "biography": "Christian Hower is a Senior Data Scientist at Lexis Nexis focused on using data science to drive commercial outcomes.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/8HM3F8/", "id": 44154, "guid": "a0e3ceb1-7eec-5aae-94af-515a606f75a0", "date": "2024-07-11T16:30:00+02:00", "start": "16:30", "logo": null, "duration": "00:30", "room": "Method (1.5)", "slug": "juliacon2024-44154-forecasting-mental-wellness-of-students-using-julia", "title": "Forecasting Mental Wellness of Students using Julia", "subtitle": "", "track": "Data Science and Dynamics", "type": "Talk", "language": "en", "abstract": "We are Forecasting Mental Wellness of Students using Julia\r\nThe purpose of this study was to understand the student\u2019s mental health as a function of self, the social and the school and the interrelation using Julia Packages. We had collected data from various sources and implemented using Julia Packages such as DataFrames.jl which will tabulate the data, MLJ.jl to make predictions on the data and PyPlot.jl to plot the results and other metrics.", "description": "Mental health includes our emotional, psychological and social well-being. It affects how we think, feel and act. It also helps determine how we handle stress and make healthy choice for being mentally stable. It can affect us through any sort of being like object, person/group of people and any kind of field.\r\nAs it is important, many university students are not able to complete their degrees because they go through a certain sort of stress, anxiety, depression and other mental health problems during course of their higher education.\r\nThe purpose of this study was to understand the student\u2019s mental health as a function of self (individual factors), the social (interpersonal factors) and the school (environmental factors) and the interrelation using Julia Packages.\r\nFor the above study we need data from various sources. This data includes student academic performance data, student attendance data, a mentor counseling dataset, other activities of student data, their social media posts data etc. We had collected data from various sources and implemented using Julia Packages such as DataFrames.jl which will tabulate the data, MLJ.jl to make predictions on the data and PyPlot.jl to plot the results and other metrics. \r\nOUTLINE:\r\nIntroduction to Mental Health (2 minutes)\r\nImportance of Mental Health in students (2 minutes)\r\nJulia for mental health analytics (2 minutes)\r\nApproaches and models for mental wellness (7 minutes)\r\nDemonstrating a basic forecasting model (5 minutes)\r\nResults and Discussions (5 minutes)\r\nConclusion (2 minutes)\r\nQuestion and Answer (5 minutes)", "recording_license": "", "do_not_record": false, "persons": [{"guid": "a79be12c-86d4-521e-926e-0f7557e87b84", "id": 39790, "code": "ZLVE9A", "public_name": "Aditi Raviraj Burse", "avatar": "https://pretalx.com/media/avatars/WhatsApp_Image_2024-01-31_at_4.02.50_PM_cVTnEVq.jpeg", "biography": "I am Aditi Raviraj Burse", "answers": []}, {"guid": "79140605-932d-589d-bfed-68deb913b082", "id": 39791, "code": "WDHNRP", "public_name": "Radhika Shidling Bhangi", "avatar": "https://pretalx.com/media/avatars/36d149a655828185cf0467ad10b7dc08_4Xs5zTK.jpg", "biography": "I am Radhika Bhangi", "answers": []}], "links": [], "attachments": [], "answers": []}], "For Loop (3.2)": [{"url": "https://pretalx.com/juliacon2024/talk/YNVEVA/", "id": 43405, "guid": "cd29ec48-0856-5b40-a9b3-0b15576fa0d1", "date": "2024-07-11T10:00:00+02:00", "start": "10:00", "logo": null, "duration": "00:10", "room": "For Loop (3.2)", "slug": "juliacon2024-43405-creating-enterprise-grade-desktop-applications-with-julia", "title": "Creating Enterprise grade Desktop applications with Julia", "subtitle": "", "track": "Julia Internals and Tooling", "type": "Lightning talk", "language": "en", "abstract": "A Desktop application is an ideal way to ship a Julia app to your target audience, especially when you're dealing with air-gapped (No Internet) environments & have concerns over privacy & cost-effectiveness. In this talk, we will discuss on how bundle your Julia app on all 3 major operating systems (Mac, Windows & Linux) and how to overcome challenges (Such as Regulatory compliance, portability, certifications, licensing, etc) that your Julia application would face in an enterprise environment.", "description": "Your app can be enterprise ready regardless of whether there is a commercial aspect to it or not. Being enterprise ready will increase the usability of your app by making it usable by a wide variety of audience. Unlike other Desktop apps, Julia apps have a unique trait to them; which needs to be addressed while shipping your app to the target audience. \r\n\r\nFollowing topics will be discussed in this talk. All the aspects discussed in this talk will be backed by more than 8 years of practical experience gained by developing and maintaining Julia based desktop products such as JuliaPro and Pumas (https://pumas.ai/pumas).\r\n\r\n\r\n* Your Julia app has to go through cybersecurity compliance frameworks inorder to be accepted by many enterprises, we will discuss on how to make sure your Julia app meets these Regulatory compliance's.\r\n* Certifying your Julia app is not only a requirement for enterprises, it has become a basic necessity for non-commercial users as well, because modern operating systems are making it difficult to bypass these certifications, we will discuss on how to certify your Julia app on each operating system.\r\n* We will also discuss on challenges faced while deploying your Julia app in an air-gapped (No Internet) environment and how to overcome them.\r\n* We will touch base on how to automate your Desktop binary builds using Julia scripts.\r\n* Upon installation of your app, the Julia dependencies (Artifacts, registries, package source code, environments, etc) that's being shipped by your binary; might be deployed on distributed user environments (Roaming profiles) and multi-user environments, we will discuss on how your Julia app should handle these kind of environments.\r\n* Support for a License Manager in your Julia app.\r\n* Code obfuscation for your private Julia code that's being shipped in your Desktop binary.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "33a1038b-4ef7-56c9-8b0b-79d5c854bc4c", "id": 39205, "code": "8LAJ8S", "public_name": "Harsha Byadarahalli Mahesh", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/8Y9WVR/", "id": 44429, "guid": "751139ed-a565-52a0-8138-f1c64a2cfbfe", "date": "2024-07-11T10:10:00+02:00", "start": "10:10", "logo": null, "duration": "00:10", "room": "For Loop (3.2)", "slug": "juliacon2024-44429-horus-robust-background-jobs-in-julia", "title": "Horus - Robust Background Jobs in Julia", "subtitle": "", "track": "Julia Internals and Tooling", "type": "Lightning talk", "language": "en", "abstract": "Many interactive applications will, at some point, need to move work out of the primary user loop, into a background process that operates asynchronously. To do this easily, scalably, efficiently and robustly is a non trivial problem. This talk introduces _Horus.jl_, a Julia package that makes it easy create and run background jobs in any Julia application.", "description": "Users expect interactive applications to always be responsive, even when doing large computations, or connecting to to unstable network services such as mail servers. So when an application needs heavy compute, or to perform action such as sending emails that don't need to be finished before a response is sent back to the user, a background job can be used to shift the work out of the main user loop. \r\n\r\nThis can be done somewhat trivially with a thread or even an async task. However, that does not account for some requirements of robust multiuser systems. What happens if the application server crashes before the background job is completed? How do you distribute the load if a large number of simultaneous request are received? What happens if the task depends on a service (say a mail server) that is down at the moment? \r\n\r\n*Horus.jl* is a new Julia package that allows you to create background jobs easily. It uses Redis as a transactional queue, and that job will run successfully only once. It provides facilities for error handling and retries. It provides somewhat similar functionality, in Julia, to Python libraries such as Celery, or Ruby libraries like Sidekick. It is the missing piece to building large interactive applications in Julia.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "aacc23f6-92e3-5069-bf18-1f592ccbb312", "id": 1163, "code": "JR9GPS", "public_name": "Avik Sengupta", "avatar": "https://pretalx.com/media/avatars/2ea774a2d172b0964147fecc6b53b7e9_OFWTjwn.jpg", "biography": "Avik leads software engineering at Julia#Hub, is a contributor to open source Julia and maintainer of several Julia packages. Avik is the author of Julia High Performance, co-founder of two artificial intelligence start-ups in the financial services sector and creator of large complex trading systems for the world's leading investment banks.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/GXWLAW/", "id": 44411, "guid": "f65011f0-670c-5f92-9ac6-da798e22c744", "date": "2024-07-11T10:20:00+02:00", "start": "10:20", "logo": null, "duration": "00:10", "room": "For Loop (3.2)", "slug": "juliacon2024-44411-interfaces-jl-base-and-package-interface-tests-for-your-objects", "title": "Interfaces.jl: base and package interface tests for your objects", "subtitle": "", "track": "Julia Internals and Tooling", "type": "Lightning talk", "language": "en", "abstract": "Interfaces.jl is an attempt to solve Julias lack of explicit interface declarations. It provides macros to define and implement interfaces concisely, and functions to test and check that they are implemented correctly.\r\n\r\nIts subpackage BaseInterface.jl defines some common Base Julia interfaces using Interfaces.jl.\r\n\r\nThis talk will cover things learned writing and using the package, and hopefully inspire some discussion on the future of interfaces in Julia more broadly.", "description": "Julia lacks a built-in method for defining strict interfaces. Instead, we use an ad-hoc combination of inheritance, traits, documentation, interface tests, and usually, run-time errors when something is not implemented! \r\n\r\nAt the same time we rely heavily on shared interfaces for high levels of package interop, and this combination makes better interfaces a common request from Julia developers. \r\n\r\nThere are a number of efforts underway exploring how interfaces could work better in Julia. This is just one of those, and certainly not the most sophisticated one!\r\n\r\nThe general assumptions of Interfaces.jl are that:\r\n\r\n- Interfaces can enforce both run-time and compile-time constraints, e.g. it is reasonable to insist that a method must return a positive valued `Int`\r\n- Interfaces often need optional components, such as mutability in AbstractArrays\r\n- Interfaces can be tested for package types only if given a specific object with that type\r\n- Interfaces definitions should provide traits other packages can check\r\n- Interface implementations should be verified during tests or package precompilation\r\n- The easiest way to define an interface is to simply provide a named list of functions that test all the mandatory and optional ways an object should behave.\r\n\r\nWe get these properties by defining a simple NamedTuples of functions, and a mechanism to make some of those names optional in the `@interface` and `@implements` declarations.\r\n\r\nBy providing data during `@implements` declarations we can also programmatically test interfaces implementations in any object, package or multiple packages with a single command.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "51379caf-78ba-57f6-aee8-0ccda8073f0c", "id": 3779, "code": "LVYSRF", "public_name": "Rafael Schouten", "avatar": "https://pretalx.com/media/avatars/avi_hstxXRX.JPG", "biography": "Rafael is an Ecologist at the Center for Macroecology, Climate and Evolution in Copenhagen. He works on process-based ecological models of species distributions, dispersal, threats and extinction, and contributes to a variety of geospatial, modelling and visualization packages.\r\n\r\n/~https://github.com/rafaqz", "answers": []}, {"guid": "180a4a35-b7c6-5883-9ac2-b398ae7f81af", "id": 10588, "code": "PJVBLC", "public_name": "Guillaume Dalle", "avatar": "https://pretalx.com/media/avatars/prof_pic_PeNvS8m.jpg", "biography": "Postdoctoral researcher at EPFL (Switzerland) in the [INDY](https://indy.epfl.ch/), [IdePHICS](https://www.epfl.ch/labs/idephics/) and [SPOC](https://www.epfl.ch/labs/spoc/) labs.\r\nCurrently working on graph machine learning.\r\nActive member of the [JuliaGraphs](https://juliagraphs.org/) and [JuliaDiff](https://juliadiff.org/) organizations.\r\nPersonal website: ", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/ZSHGHJ/", "id": 44254, "guid": "c0c54079-d373-5890-9c43-3874c47be833", "date": "2024-07-11T10:30:00+02:00", "start": "10:30", "logo": null, "duration": "00:30", "room": "For Loop (3.2)", "slug": "juliacon2024-44254-train-a-llama-2-in-julia-", "title": "Train a Llama(2) in Julia!", "subtitle": "", "track": "AI/ML/AD", "type": "Talk", "language": "en", "abstract": "Large Language Models (LLMs) have become ubiquitous in several areas. But so far, the Julia ecosystem has lacked an efficient way to train these models, hindering the adoption of Julia by ML practitioners and users. In this talk we demonstrate parallel training of LLMs using Dagger.jl and Flux.jl. We discuss the various components required to write an efficient parallel training routine. Further, we present the scaling performance achievable with this method, and discuss the future developments.", "description": "Training large neural networks has been a hard challenge in the Julia ecosystem. It requires the infrastructure to scale training to many GPUs simultaneously. In this talk we demonstrate several pieces required to train LLMs such as Llama2 in Julia. Using [Dagger.jl](/~https://github.com/JuliaParallel/Dagger.jl), we demonstrate scaling to multiple GPUs during the training of a Flux.jl model.\r\n\r\nThis approach has several applications; since the underlying implementation is agnostic of the model being trained, it can thus be reused to parallelize training across a wide variety of models to solve current and emerging problems faster than before.\r\n\r\nIn practice, LLMs aren't trained from scratch. Pre-trained models are typically loaded and then fine tuned on specialised tasks with techniques such as Low Rank Adaptation of LLMs (LoRA). This greatly reduces the training time required to fit a model to become suitable for a specific task.\r\n\r\nWe will present the various components of the pipeline - from the model and data description to setting up the parallel training job. We will present the scaling in training time achieved, and the size of models we could accommodate with this approach. We will walk through the various challenges encountered during the process, and how we envision scaling of large GPU workloads using the Julia ecosystem in the future.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "02b448d9-76af-51a0-af6a-373486d26706", "id": 1160, "code": "83D8SQ", "public_name": "Dhairya Gandhi", "avatar": null, "biography": null, "answers": []}, {"guid": "28b9fa43-872b-548f-9f5b-a6f9173f1ca2", "id": 4385, "code": "GRFD9D", "public_name": "Julian P Samaroo", "avatar": "https://pretalx.com/media/avatars/profile_headshot_CMMByGU.jpg", "biography": "I'm a Research Software Engineer at MIT's JuliaLab, working on parallel programming with Dagger.jl and AMDGPU.jl. I love working on low-level runtimes and compilers, as well as building out high-level, user-friendly parallel programming interfaces.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/GT98W8/", "id": 44483, "guid": "c766554d-46c7-53f5-bac6-16e1ec916dc9", "date": "2024-07-11T11:10:00+02:00", "start": "11:10", "logo": null, "duration": "00:10", "room": "For Loop (3.2)", "slug": "juliacon2024-44483-juliascript-jl-simply-run-julia-scripts-at-max-speed", "title": "JuliaScript.jl - simply run julia scripts at max speed", "subtitle": "", "track": "Julia Internals and Tooling", "type": "Lightning talk", "language": "en", "abstract": "JuliaScript.jl provides `juliascript` runner with which you really just do `juliascript yourscript.jl`.\r\n\r\nEnjoy speed for julia scripts!", "description": "When building Julia scripts myself, I couldn't find any way to make them simply fast out of the box. This package solves this.\r\n\r\nThe difficulty behind the scene is that Julia's precompilation is build for packages, not for scripts. Hence `juliascript` automatically translates your script into a respective package with optimal precompilation. A single runner, everything automated.\r\n\r\nFurthermore, `juliascript` is also a tiny wrapper around PackageCompiler.jl, but more on this in the talk.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "f7befa64-9abd-5287-a449-dd43b54ab6d8", "id": 4390, "code": "MJPZGQ", "public_name": "Stephan Sahm", "avatar": "https://pretalx.com/media/avatars/jakobsweg-fisterra-fokus-square_aej6Nip.jpg", "biography": "On my journey to bring Pluto and Julia to the data science mass market. \r\n\r\nIf you want to convince your company to support Julia for Data Science, [cloud.jolin.io](https://cloud.jolin.io) is the perfect tool for you! Simply login with your github user at [cloud.jolin.io](https://cloud.jolin.io), a hosted Pluto service.\r\n\r\n\r\nEntrepreneur, Data Scientist/Engineer, Cloud Architect.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/BLCJCQ/", "id": 44444, "guid": "e0e89fec-4262-54a2-b6e7-ab62bb1ba1ac", "date": "2024-07-11T14:00:00+02:00", "start": "14:00", "logo": null, "duration": "00:30", "room": "For Loop (3.2)", "slug": "juliacon2024-44444-multi-label-image-classification-with-cnn-and-vision-transformer", "title": "Multi-label Image Classification with CNN and Vision Transformer", "subtitle": "", "track": "AI/ML/AD", "type": "Talk", "language": "en", "abstract": "This work presents a novel approach to the multi-label classification of brain pathology using a hybrid model comprising Convolutional Neural Networks (CNN) and Vision Transformers (ViT) implemented in the Julia. Complementing the strengths of both architectures, Our hybrid model, aims to accurately identify various brain abnormalities simultaneously from medical images.", "description": "Brain pathology classification is a crucial task in medical diagnostics, and accurate diagnosis of brain pathologies from medical imaging can be facilitated by multi-label categorization. However, there are several co-occurring illnesses with slight differences, and accurately diagnosing brain disorders is both crucial and difficult. This means that clinicians can benefit from multi-label classification techniques that can distinguish important pathology signals from medical imaging. \r\n\r\nThis work presents an advanced approach by combining the strengths of Convolutional Neural Networks (CNN) and Vision Transformers (ViT). Our hybrid model, implemented in Julia, integrates renowned CNN architectures (ResNet, Inception, VGGNet, DenseNet, and MobileNet) with cutting-edge ViT architectures (ViT, DeiT, Swin Transformer, CaiT, and T2T-ViT). This integration aims to improve the simultaneous detection of multiple brain abnormalities, enhancing accuracy and efficiency. The study utilizes a diverse set of datasets, each carefully chosen to represent various brain pathologies, ensuring the robustness and generalizability of our model.\r\n\r\nWe leverage openly accessible datasets, including ADNI, TCIA, BRATS, The image data sets in The Cancer Imaging Archive (TCIA), IXI, ABIDE, OASIS, ADHD-200, C-MIND MRI, and Medical Segmentation Decathlon. These datasets cover a range of brain abnormalities, providing a realistic foundation for model training.\r\n\r\nThe project focuses on multi-label classification, a challenging task in medical image analysis. The model's ability to simultaneously identify various brain pathologies in a single pass distinguishes it from traditional approaches, offering a more holistic understanding of complex clinical scenarios.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "51273f18-f760-5b86-84fc-faa6fd5d6e8a", "id": 39913, "code": "N3JEG3", "public_name": "Vivek Kiran Ballakur", "avatar": "https://pretalx.com/media/avatars/Passport_Size_Photo-Vivek_DuTlx3m.jpg", "biography": "Alumni from University of South Dakota, Graduated with Bachelor of Science in Biomedical Engineering.\r\n\r\nLinkedIn: https://www.linkedin.com/in/vivekkiran", "answers": []}, {"guid": "47f58317-701d-5e5d-b900-449df50e66dd", "id": 39997, "code": "83QW88", "public_name": "Neerajdattu Dudam", "avatar": null, "biography": null, "answers": []}, {"guid": "744adbec-3d22-5448-8855-819ade1cb857", "id": 40014, "code": "WNUGSU", "public_name": "Sainath Vaddi", "avatar": null, "biography": null, "answers": []}, {"guid": "a08f846c-9f8e-56cc-ab97-fb32476e47ca", "id": 40015, "code": "CPS9J7", "public_name": "Sony Reddy Gurram", "avatar": null, "biography": null, "answers": []}, {"guid": "7cd9c8d0-7aef-52c3-9eea-2f3e7bee0973", "id": 41623, "code": "SUQVJS", "public_name": "Dr. Rodrigue Rizk", "avatar": null, "biography": "Dr. Rodrigue Rizk is currently a professor at the University of South Dakota. Dr. Rizk received the B.E. degree in computer and communication engineering Summa Cum Laude highest honor distinction from Notre Dame University and was the valedictorian of his class with a GPA of 4.0/4.0. He received his M.S. and Ph.D. degrees in Computer Engineering from the University of Louisiana at Lafayette while maintaining a perfect grade point average. His area of specialization is comprised of the dynamic relationship between software and hardware. His research interests include high-level computational systems, artificial intelligence, data science and analytics, Internet of Medical Things (IoMT), data privacy and security, reinforcement learning, quantum and neuromorphic computing, high-performance computer architecture, deep learning optimization, hardware-software co-design, heterogeneous computing, Field Programmable Gate Arrays (FPGA), VLSI, AI hardware accelerators, healthcare, epigraphy, ancient languages, and emerging technologies. Dr. Rizk has collaborated actively with researchers in several other disciplines of informatics, computer science, and engineering, ranging from theory to design to implementation, and has published several research papers in top-tier conferences and journals. As a researcher and advocate for innovation, he is constantly seeking new ways to apply cutting-edge technologies to solve real-world problems and improve the lives of people.\r\n\r\nOver the past years, Dr. Rizk has spent significant effort in serving the research community. He has served as a reviewer for top-tier conferences and journals, including the Hawaii International Conference on System Sciences (HICSS), IEEE Green Technologies Conference (GreenTech), IEEE International Systems Conference (SysCon), IEEE World Congress on Computational Intelligence (WCCI), and the Journal of Computational and Mathematical Organization Theory (CMOT, Springer Nature).\r\n\r\nDr. Rizk is a licensed Professional Engineer with a wide range of industry expertise and a member of the Order of the Engineer in the United States. He is the recipient of the prestigious Richard G. and Mary B. Neiheisel endowed fellowship, a lifetime member of the Phi Kappa Phi honor society, and a professional member of ACM and IEEE. He is also a member of the IEEE Standards Association, IEEE Computer and Quantum Society, ACM-W, and Emerging Interest Groups (EIG) on Smart Connected Communities and Reproducibility and Independent Verification. Dr. Rizk is also the recipient of many prestigious awards including the President's Award for Educational Excellence and Outstanding Academic Achievement and the Ragin\u2019 Leadership Academy Award.\r\n\r\nIn addition to his work in technology, Dr. Rizk has a deep interest in ancient languages and civilizations. He is a scholar of history and culture. He has made significant contributions to the field through his research and writing, as he explores the intersections between technology and human experience.\r\n\r\nOutside the academic life, Dr. Rizk's community service efforts are distinctive and extensive. He serves as a volunteer with a number of state and non-profit organizations and was named a Goodwill Ambassador. He has traveled extensively, working with organizations and communities to promote education, technology, digital disruption, and sustainable development. Dr. Rizk is also a writer, poet, and communicator. He has numerous publications on a variety of topics, including poetry, ancient languages, epigraphy, and emerging technologies. Through his writing, he seeks to inform and inspire a wider audience, and to bring attention to important issues and challenges facing the humanity.", "answers": []}, {"guid": "e2512892-4329-5fe5-827f-bcaa09dc145d", "id": 45494, "code": "XRQCTJ", "public_name": "Sivani Maddepalli", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/YGZYWK/", "id": 43429, "guid": "efc2b28e-80bd-57fd-821f-d021c11f614b", "date": "2024-07-11T14:30:00+02:00", "start": "14:30", "logo": null, "duration": "00:30", "room": "For Loop (3.2)", "slug": "juliacon2024-43429-gradients-for-everyone-a-quick-guide-to-autodiff-in-julia", "title": "Gradients for everyone: a quick guide to autodiff in Julia", "subtitle": "", "track": "AI/ML/AD", "type": "Talk", "language": "en", "abstract": "Automatic Differentiation (AD) is the art of letting your computer work out derivatives for you. The Julia ecosystem provides many different AD tools, which can be overwhelming. This talk will give everyone the necessary information to answer two simple questions:\r\n- As a developer, how do I make my functions differentiable?\r\n- As a user, how do I differentiate through other people's functions?", "description": "The ability to take gradients of arbitrary computer programs is at the core of many breakthroughs in science and machine learning.\r\nIn Python, AD is fragmented into separate frameworks like TensorFlow, PyTorch or JAX. Each one of these has its own package ecosystem, and interoperability is limited. You first pick your AD framework, and then you write all your code in it.\r\n\r\nMeanwhile on the Julia side, the dream is to make the whole language differentiable. Ideally, you should be able to write the code you want, and get gradients for free. In practice, there are multiple AD packages (ForwardDiff, ReverseDiff, Zygote, Enzyme, etc.) with distinct sets of tradeoffs. Should you use generic types? Can you perform mutating operations? Newcomers may not understand where these constraints come from, or whether they are inevitable.\r\n\r\nThe present talk is an introduction to AD in Julia, from two complementary point of views.\r\n- package developers want to make their functions differentiable with as many backends as possible.\r\n- package users want easy ways to compute derivatives with the best possible performance.\r\n\r\nWe will give both of these groups the right tools to make informed decisions. Here is a rough summary of our presentation:\r\n\r\n1. Classification of AD systems - forward and reverse mode\r\n2. Python versus Julia - two different approaches\r\n3. Making code differentiable - quick fixes or custom rules\r\n4. Using differentiable code - switching backends if needed", "recording_license": "", "do_not_record": false, "persons": [{"guid": "180a4a35-b7c6-5883-9ac2-b398ae7f81af", "id": 10588, "code": "PJVBLC", "public_name": "Guillaume Dalle", "avatar": "https://pretalx.com/media/avatars/prof_pic_PeNvS8m.jpg", "biography": "Postdoctoral researcher at EPFL (Switzerland) in the [INDY](https://indy.epfl.ch/), [IdePHICS](https://www.epfl.ch/labs/idephics/) and [SPOC](https://www.epfl.ch/labs/spoc/) labs.\r\nCurrently working on graph machine learning.\r\nActive member of the [JuliaGraphs](https://juliagraphs.org/) and [JuliaDiff](https://juliadiff.org/) organizations.\r\nPersonal website: ", "answers": []}, {"guid": "62c9975b-2116-5458-a96c-e00cb8332090", "id": 18371, "code": "3CFNUV", "public_name": "Adrian Hill", "avatar": "https://pretalx.com/media/avatars/git_clustered_16_k3p4Zth.png", "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/NSQXNP/", "id": 44477, "guid": "03824035-4761-5b85-90e0-31ace2f44b8b", "date": "2024-07-11T15:00:00+02:00", "start": "15:00", "logo": null, "duration": "00:30", "room": "For Loop (3.2)", "slug": "juliacon2024-44477-secure-and-local-copilots-powered-by-open-source-llms-and-julia", "title": "Secure And Local Copilots powered by Open Source LLMs and Julia", "subtitle": "", "track": "AI/ML/AD", "type": "Talk", "language": "en", "abstract": "Today, most AI applications send data to LLM cloud providers, raising privacy concerns. This talk introduces a new way to build AI applications that keep everything local on your computer. By running LLMs locally with Ollama powered by a Julia Client Script and managing data with open source vector databases, we avoid transmitting sensitive information to external cloud providers. We will also highlight LangChain's ability to create versatile agents capable of handling tasks autonomously.", "description": "In this talk, we\u2019ll see \r\n\r\n1. Introduction to Local AI (5 minutes): Overview of cloud-based AI privacy issues and the importance of local AI.\r\n2. Exploring Ollama, Open Source Vector Databases like QrandantDB , LangChain: Detailed insights into each tool, generating embeddings with Ollama for vector searches in vector databases like QrandantDB and demonstrating how LangChain agents can perform tasks such as document summarization and API interactions, all while maintaining data privacy (10 minutes) \r\n\r\n3. Live Demo and Applications (15 minutes): A practical demonstration of these tools and discussion of real-world use cases by implementing Ollama Using a simple Julia client scripts to connect to Ollama ( local LLM ) and generates Julia code", "recording_license": "", "do_not_record": false, "persons": [{"guid": "0d6dfb22-c9de-5333-bb26-c87eaf2b7223", "id": 7498, "code": "T9TYF8", "public_name": "Shivay Lamba", "avatar": "https://pretalx.com/media/avatars/6c3157c0aec2983310b14b1a3aaf0ef5_k2EjKmd.jpg", "biography": "Shivay Lamba is a software developer specializing in DevOps, Machine Learning and Full Stack Development. \r\n\r\nHe is an Open Source Enthusiast and has been part of various programs like Google Code In and Google Summer of Code as a Mentor and has also been a MLH Fellow. He is actively involved in community work as well. He is a TensorflowJS SIG member, Mentor in OpenMined and CNCF Service Mesh Community, SODA Foundation and has given talks at various conferences like Github Satellite, Voice Global, Fossasia Tech Summit, TensorflowJS Show & Tell.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/HHLKRR/", "id": 41486, "guid": "a7083128-61c8-52a4-996b-3b072707276f", "date": "2024-07-11T15:30:00+02:00", "start": "15:30", "logo": null, "duration": "00:10", "room": "For Loop (3.2)", "slug": "juliacon2024-41486-end-to-end-ai-e2eai-with-julia-k0s-and-argo-workflow", "title": "End-to-End AI (E2EAI) with Julia, K0s, and Argo Workflow", "subtitle": "", "track": "AI/ML/AD", "type": "Lightning talk", "language": "en", "abstract": "This talk will demonstrate an End-to-End AI (E2EAI) implementation by leveraging on Julia\u2019s AutoMLPipeline package for developing AI solution together with K0s and Argo Workflow frameworks to automate the provisioning of the K8s cluster and the deployment and monitoring of AI solutions.", "description": "Current implementations in cloud computing treat MLOps and IaC (infrastructure as a code) as separate activities. Without a unified view of both the needed infrastructure and the data processing and modelling tasks involved, current approaches put the burden of integrating the automation of both AI solutions and infrastructure to majority of stakeholders that typically lack the specialization of both technologies at the same time. E2EAI (End-to-End AI) aims to create a unified framework by tightly integrating MLOps and IaC workflows using high-level yaml description and APIs for zero to minimal coding leveraging on Julia\u2019s performance and efficiency together with K0s high-level abstractions of k8s infrastructure and Argo Workflow\u2019s ML pipeline stages of deploying micro-services.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "91bb205c-81fc-5733-b0a4-1663092da9ba", "id": 1072, "code": "3EKCYY", "public_name": "Paulito Palmes", "avatar": "https://pretalx.com/media/avatars/ppp_gzilMNs.jpeg", "biography": "I am a research scientist at the IBM Research Europe (Dublin Research Lab) working in the areas of analytics, datamining, machine learning, reinforcement learning, automated decisions, and automated AI. More information of my work in automated AI (AutoMLPipeline.jl, TSML.jl, and Lale.jl) can be found in IBM Research main page.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/JDWKAC/", "id": 44308, "guid": "f4a3d4d0-460e-5b6d-b2b7-485b9de30f42", "date": "2024-07-11T15:40:00+02:00", "start": "15:40", "logo": null, "duration": "00:10", "room": "For Loop (3.2)", "slug": "juliacon2024-44308-what-s-new-with-explainable-ai-in-julia-", "title": "What's new with Explainable AI in Julia?", "subtitle": "", "track": "AI/ML/AD", "type": "Lightning talk", "language": "en", "abstract": "**ExplainableAI.jl**, a comprehensive set of XAI tools for Julia, has undergone significant development since our initial presentation at JuliaCon 2022, and has since been expanded into the **Julia-XAI ecosystem**. This lightning talk will highlight the latest developments, including new methods, the new XAIBase.jl core interface, and new utilities for visualizing explanations of vision and language models.", "description": "In machine learning, understanding the inner workings of black-box models is critical to ensuring their safety and trustworthiness. The field of Explainable AI (XAI) aims to provide practitioners with methods to gain insight into the decision-making processes of their models.\r\nThe Julia-XAI ecosystem provides such methods, with a focus on post-hoc, local input space explanations. Simply put, methods that try to answer the question *\"What part of the input is responsible for the model's output?\"*.\r\n\r\nSince our first presentation of **ExplainableAI.jl** at JuliaCon 2022, the package has been expanded into the **Julia-XAI ecosystem**. This lightning talk will cover the latest additions and present new features:\r\n\r\n\r\n- **XAIBase.jl:** Core package that defines the Julia-XAI interface, allowing developers to quickly implement or prototype new methods without writing boilerplate code.\r\n- **VisionHeatmaps.jl and TextHeatmaps.jl:** Lightweight dependencies for visualizing explanations of vision and language models.\r\n- **RelevancePropagation.jl:** A new package for Layer-wise Relevance Propagation (LRP) and Concept Relevance Propagation (CRP) for use with Flux.jl models, supporting ResNets and Transformer architectures.\r\n- **New XAI methods in ExplainableAI.jl**", "recording_license": "", "do_not_record": false, "persons": [{"guid": "62c9975b-2116-5458-a96c-e00cb8332090", "id": 18371, "code": "3CFNUV", "public_name": "Adrian Hill", "avatar": "https://pretalx.com/media/avatars/git_clustered_16_k3p4Zth.png", "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/FMHLCX/", "id": 44412, "guid": "543bc614-0946-5e52-8b01-589b87909ce6", "date": "2024-07-11T15:50:00+02:00", "start": "15:50", "logo": null, "duration": "00:10", "room": "For Loop (3.2)", "slug": "juliacon2024-44412-enabling-spectral-indices-computation-with-spectralindices-jl", "title": "Enabling Spectral Indices Computation with SpectralIndices.jl", "subtitle": "", "track": "General", "type": "Lightning talk", "language": "en", "abstract": "Amidst the surge in novel spectral indices for the increasing volume of remote sensing data with higher spatial, temporal, and spectral resolutions, this Julia package offers a comprehensive solution for their easy access and efficient computation. It features a user-friendly interface and robust processing capabilities. SpectralIndices.jl works with the most used data types (i.e. data frames), as well as with data types tailored for Earth system science (e.g. YAXArrays).", "description": "In this talk, we will showcase SpectralIndices.jl (/~https://github.com/awesome-spectral-indices/SpectralIndices.jl), a Julia package developed to simplify the access and computation of spectral indices in remote sensing data analysis. The presentation will offer a comprehensive overview of the package's capabilities, emphasizing its application in Earth system research.\r\nKey topics to be covered include:\r\n1. Spectral Indices: Basic introduction.\r\n2. Package Overview: Introduction to SpectralIndices.jl, its design philosophy, and the specific challenges it addresses in remote sensing data analysis.\r\n3. Accessing Spectral Indices: Demonstrating how the package provides streamlined access to a wide range of spectral indices, including both well-established and newly developed indices.\r\n4. Data Compatibility and Processing: Exploring the package's compatibility with various remote sensing data types and formats. We will demonstrate how SpectralIndices.jl can be applied to different datasets.\r\n5. User Interface and Usability: Showcasing the user-friendly interface of SpectralIndices.jl. The presentation will include live coding examples to illustrate the ease of computing spectral indices with minimal coding effort, making the tool accessible to users with and without remote sensing expertise.\r\n6. Future Directions: Outlining the ongoing development and future plans for SpectralIndices.jl. We will discuss potential enhancements, community collaboration opportunities, and the envisioned roadmap for the package.\r\n\r\nBy the end of this talk, attendees will have a deep understanding of SpectralIndices.jl's technical features, its application in remote sensing research, and how it contributes to advancing Earth system science through efficient data analysis and community-driven development. This work is done in collaboration with Miguel D. Mahecha, David Montero and Karin Mora.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "a8b2dd8d-3e80-5c46-90a5-64b401e7b631", "id": 10403, "code": "NGLZHC", "public_name": "Francesco Martinuzzi", "avatar": "https://pretalx.com/media/avatars/profilepiczoom_X7T6rib.jpg", "biography": "I am currently pursuing a PhD in Physics and Earth Sciences at Leipzig University, Germany, and Valencia, Spain, as a member of the ELLIS PhD program. My research focuses on the application of machine learning in Earth systems. I am part of the team at the Remote Sensing Center for Earth System Research (RSC4Earth), working under the supervision of Prof. Miguel D. Mahecha and Dr. Karin Mora. In addition, I have an affiliation with the Center for Scalable Data Analytics and Artificial Intelligence (ScaDS.AI).", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/FSMGKN/", "id": 44452, "guid": "817d44ad-cb07-5545-8d37-a36b7e125843", "date": "2024-07-11T16:00:00+02:00", "start": "16:00", "logo": null, "duration": "00:30", "room": "For Loop (3.2)", "slug": "juliacon2024-44452-large-language-models-to-be-or-not-to-be", "title": "Large Language Models: To Be or Not To Be", "subtitle": "", "track": "AI/ML/AD", "type": "Talk", "language": "en", "abstract": "Large Language models(LLMs) such as ChatGPT, Bard, Midjourney, Gemini, and many others are buzzwords in the present era of Artificial Intelligence. In this talk, I will address the impact of large language models on the environment and present small language models as the solution.", "description": "Large Language models(LLMs) such as ChatGPT, Bard, Midjourney, Gemini, and many others are buzzwords in the present era of Artificial Intelligence. The technologies such as Large Language Models are like a double-edged sword. On one hand, they offer lots of benefits and create new opportunities and on the other hand, they raise many concerns. One of the concerns, that is least discussed is the impact of large language models on the environment. The large language models are trained on billions and trillions of parameters and they require huge compute resources that contribute to carbon footprint. One of the possible solutions to reduce the carbon footprint and environmental impact of LLMs is to consider using Small Language Models and Modular Language Models. In many cases, small language models offer better solutions than large language models. This talk begins with an introduction to Large Language models and their impact on the environment and how they contribute to carbon footprint. Next, I will introduce Small Language models and how they will help in reducing the carbon footprint while offering a better solution. I will demonstrate a sample small language model application using Julia packages i.e., Transformers.jl, PromptingTools.jl and ConformalPrediction.jl. Finally, I will conclude the talk by comparing the impact of large language models and small language models on the environment.\r\n\r\nOutline:\r\n1. Introduction to Large Language models and their impact on the environment(05 Minutes)\r\n2. Overview of Small Language models as a solution to reduce the carbon footprint(05 Minutes)\r\n3. Introduction to Transformers.jl, PromptingTools.jl and ConformalPrediction.jl (08 Minutes)\r\n4. Building an example small language model application in Julia(08 Minutes)\r\n5. Comparison of the environmental impact of large language models and small language models(02 Minutes)\r\n6. Conclusion and Questions (02 Minutes)", "recording_license": "", "do_not_record": false, "persons": [{"guid": "0d358e73-8238-518c-80eb-7a0abc4a6790", "id": 4277, "code": "CPJQQS", "public_name": "Gajendra Deshpande", "avatar": "https://pretalx.com/media/avatars/29e41e987c3d42e6649778c3cf54bd87_VipIIPj.jpg", "biography": "Gajendra Deshpande is a distinguished professional with an M.Tech. in Computer Science and Engineering from Visvesvaraya Technological University, Belagavi, along with a PG Diploma in Cyber Law and Cyber Forensics from the National Law School of India University, Bengaluru. He founded and currently manages EyeSec Cyber Security Solutions Private Limited in Belagavi.\r\n\r\nDeshpande is renowned for his extensive contribution to the tech community, having delivered over 100 talks and conducted more than 25 workshops at various esteemed international conferences, including JuliaCon 2023 at MIT, USA, EuroPython Ireland, PyCon MEA Dubai, PyCon APAC Japan, PyData Global, and many more across Europe, Asia and the USA. His expertise has guided teams to victory in the Smart India Hackathon and National Security Hackathon five times.\r\n\r\nAs an active member of PyCon India, Deshpande has played crucial roles, such as leading the Program Committee in 2021 and serving as the Mentorship Lead in 2023. He has been instrumental in organizing FOSSCon India 2019 and BelPy conferences. His commitment extends to various professional bodies, serving as the Vice Chair of the IEEE Young Professionals Affinity Group, Bangalore Section, and an Execom Member of IEEE NKSS. He is a Fellow Member of the Royal Statistical Society UK and maintains memberships with OWASP, the British Computer Society, and ACM. Deshpande has significantly contributed to Python, Julia, and FOSS Conferences by reviewing proposals, mentoring speakers, engaging in discussions, and organizing events.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/H8AWEY/", "id": 43382, "guid": "90bf41ce-8059-5561-a3b0-5bd470250306", "date": "2024-07-11T16:30:00+02:00", "start": "16:30", "logo": null, "duration": "00:30", "room": "For Loop (3.2)", "slug": "juliacon2024-43382-gatlab-computer-algebra-and-standard-ml-modules-combined", "title": "Gatlab: Computer Algebra and Standard ML modules combined", "subtitle": "", "track": "AI/ML/AD", "type": "Talk", "language": "en", "abstract": "What do computer algebra and Standard ML-style module systems have in common? In this talk, we will answer this question via exploration of GATlab.jl, a new package spun off of the GAT (generalized algebraic theories) system from Catlab. Rather than focusing on the mathematics of GATs, we will give a practical introduction on how to use GATlab as both a computer algebra system and a Standard ML-style module system, and how each use complements the other.", "description": "The core idea of [GATlab](/~https://github.com/AlgebraicJulia/GATlab.jl) is the following. Consider the following module signature in OCaml.\r\n\r\n```ocaml\r\nmodule type MONOID =\r\n sig\r\n type t\r\n val zero : t\r\n val add : (t, t) -> t\r\n end\r\n```\r\n\r\nA module can be said to \"implement\" this signature if the module contains a type `t` along with a \"zero value\" for `t` and a function which adds two elements of `t`.\r\n\r\n```ocaml\r\nmodule INTMONOID : MONOID =\r\n struct\r\n type t = int\r\n let zero = 0\r\n let add (x, y) = x + y\r\n end\r\n```\r\n\r\nHowever, we could also interpret that signature in a different way: we could interpret it as a *specification for syntax trees*. Specifically, we could make a data structure which looks like the following (we now switch back to Julia)\r\n\r\n```julia\r\nabstract type MonoidTerm{T} end\r\n\r\neltype(t::MonoidTerm{T}) where {T} = T\r\n\r\nstruct Zero{T} <: MonoidTerm{T}\r\nend\r\n\r\nstruct Add{T} <: MonoidTerm{T}\r\n lhs::MonoidTerm\r\n rhs::MonoidTerm\r\nend\r\n\r\nstruct Val{T} <: MonoidTerm{T}\r\n value::T\r\nend\r\n```\r\n\r\nWe can then make implementations using multiple dispatch\r\n\r\n```julia\r\nabstract type Monoid{T} end\r\n\r\nstruct IntMonoid <: Monoid{Int}\r\nend\r\n\r\nzero(::IntMonoid) = 0\r\nadd(::IntMonoid, x::Int, y::Int) = x + y\r\n```\r\n\r\nUsing such a \"module\" of type `Monoid{T}`, we can *interpret* any `MonoidTerm{T}` to produce a `T`! That is, we can write a function\r\n\r\n```julia\r\nfunction interpret(M::Monoid{T}, t::MonoidTerm{T}) where {T}\r\n if t isa Zero\r\n zero(M)\r\n elseif t isa Add\r\n add(M, interpret(M, t.lhs), interpret(M, t.rhs))\r\n elseif t isa Val\r\n t.value\r\n end\r\nend\r\n```\r\n\r\nIf we build a signature+module system from the ground up using macros and multiple dispatch, we can also build in these syntax trees and corresponding interpreters. It is also possible to compile a syntax tree to a Julia function.\r\n\r\nGATlab is an implementation of this... and significantly more. First of all, one can add *laws* to a signature to produce a *theory* (theory = signature + laws).\r\n\r\n```julia\r\n@theory ThMonoid begin\r\n T::TYPE\r\n zero::T\r\n add(x::T, y::T)::T\r\n add(x, zero) == x \u22a3 [x::T]\r\n add(zero, x) == x \u22a3 [x::T]\r\n add(add(x, y), z) == add(x, add(y, z)) \u22a3 [x::T, y::T, z::T]\r\nend\r\n```\r\n\r\nWe call a law-abiding implementation of the signature of a theory a *model* of that theory.\r\n\r\nNow, we cannot statically check that a model of a theory satisfies the laws, but the laws do provide a principled way of doing *rewriting* on the syntax trees associated to a signature. We use e-graphs to perform this rewriting, with a custom type-aware implementation.\r\n\r\nThe mathematics behind all of this is studied within [universal algebra](https://en.wikipedia.org/wiki/Universal_algebra). Many of the features of ML-style module systems have analogues within universal algebra. For instance, one can build up complex theories via inheriting simpler theories, or create maps between theories (analogous to ML-style functors), and these operations on theories can be used to generate new models from old ones.\r\n\r\nHowever, universal algebra cannot capture certain structures important for our work in Catlab, first and foremost categories. To support categories, we upgrade from algebraic theories to generalized algebraic theories (or *GATs*, which is where the name of GATlab comes from), as introduced by [Cartmell](https://www.researchgate.net/publication/314154820_Generalised_Algebraic_Theories_and_Contextual_Categories). These support theories with *dependent types*, which looks like the following\r\n\r\n```julia\r\n@theory ThCategory begin\r\n Ob::TYPE\r\n Hom(dom, codom)::TYPE \u22a3 [dom::Ob, codom::Ob]\r\n id(a::Ob)::Hom(a, a)\r\n compose(f::Hom(a, b), g::Hom(b, c))::Hom(a, c) \u22a3 [a::Ob, b::Ob, c::Ob]\r\n compose(f, id(b)) == g \u22a3 [a::Ob, b::Ob, f::Hom(a, b)]\r\n ...\r\nend \r\n```\r\n\r\nJust like with algebraic theories, we can work with syntax trees, we can write interpreters, and we can programmatically manipulate models.\r\n\r\nGATlab can be compared to frameworks like [MMT](https://uniformal.github.io/doc/), but with the ability to have models compute fast. Another comparison would be to Julia libraries like Symbolics.jl. Symbolics.jl is far more advanced for traditional computer algebra, but the underlying assumption is that variables are some sort of number, while GATlab does not assume this. Finally, we might compare with Julia libraries like [WhereTraits.jl](/~https://github.com/jolin-io/WhereTraits.jl) which add traits/typeclasses to Julia. GATlab differs from these in being more similar to Standard ML modules rather than Haskell typeclasses or Rust traits, and in its CAS aspects. We hope to learn from these other projects and integrate their strengths as GATlab evolves.\r\n\r\nIn this talk, we will give an introduction to GATlab from a practical perspective, showing how to work with simple theories and modules, and emphasizing the connection (as described above) between computer algebra and module systems.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "5319504d-e20e-59b3-a1d9-8984a0faa0fa", "id": 10127, "code": "TY8PJL", "public_name": "Owen Lynch", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}], "Function (4.1)": [{"url": "https://pretalx.com/juliacon2024/talk/7NF3SV/", "id": 44459, "guid": "d62d1de0-7811-5106-8832-723bdccc3bc2", "date": "2024-07-11T10:00:00+02:00", "start": "10:00", "logo": "https://pretalx.com/media/juliacon2024/submissions/7NF3SV/logo_light_jRBNiTq.svg", "duration": "00:10", "room": "Function (4.1)", "slug": "juliacon2024-44459-coupledelectricmagneticdipoles-jl", "title": "CoupledElectricMagneticDipoles.jl", "subtitle": "", "track": "Physics & Quantum Chemistry", "type": "Lightning talk", "language": "en", "abstract": "We present CoupledElectricMagneticDipoles.jl, a Julia package implementing the coupled electric and magnetic dipole (CEMD) or discrete dipole approximation (DDA) method for electromagnetic multiple scattering calculations, as well as a plethora of side functionalities that might be useful for preparing such calculations or analyzing the obtained results.", "description": "The coupled electric and magnetic dipole (CEMD) and the discrete dipole approximation (DDA) methods are used extensively in nano-photonics or nano-optics, addressing problems of electromagnetic scattering in complex systems or on single discretized targets [1]. Nowadays, implementations of both CEMD and DDA methods can be found in almost all common programming languages [2], but not in the Julia language, renowned for its performance, simplicity and dynamism. \r\n\r\nIn order to remedy this, we introduce CoupledElectricMagneticDipoles.jl, a Julia Package implementing the CEMD and DDA methods, as well as all the side functionalities that are needed to do simulations using these two methods. The package is organized in 8 modules organized around the main one, DDACore. This module allows to define and solve CEMD (DDA) problems using either CPU or GPU. The other modules can be used to give input to the functions of the DDACore module (with the Alphas, Geometries and InputFields modules), or for analyzing the obtained results (with the PostProcessing and Forces modules). Moreover, two modules are implemented as utilities, GreenTensors and MieCoeff.\r\n\r\nWe shall discuss the performances of CoupledElectricMagneticDipoles.jl, as well as its simplicity of use, showing typical examples from nano-photonics and nano-optics.\r\n\r\n[1] Bruce T. Draine and Piotr J. Flatau, \"Discrete-Dipole Approximation For Scattering Calculations\". J. Opt. Soc. Am. A 11, 1491-1499 (1994) \r\n[2] P.C. Chaumet, \u201cThe Discrete Dipole Approximation: A Review\u201d. Mathematics, 10, 3049 (2022)", "recording_license": "", "do_not_record": false, "persons": [{"guid": "a62ebd0a-2f33-515d-a480-b081ea078cc3", "id": 39994, "code": "LPXJBE", "public_name": "Augustin Muster", "avatar": "https://pretalx.com/media/avatars/a_muster_B0o1mZo.jpg", "biography": "Augustin Muster is PhD student in theoretical/numerical physics in the Soft Matter and Photonics research group at the University of Fribourg, Switzerland.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/DK8EMZ/", "id": 44350, "guid": "eea2d130-e0e7-5d85-9e69-295b4f110cb0", "date": "2024-07-11T10:10:00+02:00", "start": "10:10", "logo": null, "duration": "00:10", "room": "Function (4.1)", "slug": "juliacon2024-44350-introducing-mujoco-jl-julia-bindings-for-the-mujoco-simulator", "title": "Introducing MuJoCo.jl - Julia bindings for the MuJoCo simulator", "subtitle": "", "track": "Physics & Quantum Chemistry", "type": "Lightning talk", "language": "en", "abstract": "In this talk, we will introduce our new package, [MuJoCo.jl](/~https://github.com/JamieMair/MuJoCo.jl), bringing the advanced physics simulator **[MuJoCo](/~https://github.com/google-deepmind/mujoco)** to fellow Julia users. We will highlight the features that this package gives to users and give an example of how to make best use of the package and its visualiser.", "description": "**[MuJoCo](/~https://github.com/google-deepmind/mujoco)** is an advanced, high-performance physics engine designed for accurate and fast simulation of robotic applications. The engine, provided by Google DeepMind, can be used by robotics researchers and practitioners to design, calibrate and test control software for robotic systems in a simulated environment. MuJoCo is also utilised by the machine learning community, enabling state-of-the-art Reinforcement Learning techniques to be applied to robotics, as such techniques require millions of hours of high quality training data to be effective.\r\n\r\nBy creating [MuJoCo.jl](/~https://github.com/JamieMair/MuJoCo.jl). we aim to provide the Julia community with modern bindings to the MuJoCo physics engine, integrated with a visualisation tool to allow simulations to be rendered in real-time, without users ever having to leave the Julia ecosystem. Our design was guided by several goals, ensuring that the package:\r\n1) Offers a high-performance thin wrapper around the existing C library, enabling users to exert fine-grained control over performance, including support for multi-threading.\r\n2) Provides a user-friendly experience, complete with comprehensive documentation of structs and functions, as well as bounds checking on inputs.\r\n3) Presents native Julia interfaces to directly access array/matrix data from the engine, facilitating interoperability with other packages.\r\n\r\nThis talk will start by showcasing some of the main features of [MuJoCo.jl](/~https://github.com/JamieMair/MuJoCo.jl), followed by a detailed example, along with usage tips, of how to use the package and its visualiser.\r\n\r\nThis work builds on some amazing previous work by [Lyceum](/~https://github.com/Lyceum), whose visualisation tools have been integrated directly into [MuJoCo.jl](/~https://github.com/JamieMair/MuJoCo.jl) via Julia's package extension framework.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "61bb2807-ab4c-52a4-8999-69bc14466381", "id": 33280, "code": "J7NXYR", "public_name": "Jamie Mair", "avatar": "https://pretalx.com/media/avatars/profilepicture_aN28Zj6.jpeg", "biography": "Jamie Mair is a Research & Teaching Fellow at the University of Nottingham, where he instructs the Reinforcement Learning strand of the Machine Learning in Science Master's programme. Throughout his research career, Jamie has advocated for the use of Julia in academic research. He has delivered several internal talks and presentations aiming to introduce Julia to a wider audience. These resources have culminated and been developed into in a comprehensive lecture series, designed for postgraduate students, focusing on High Performance Computing using Julia.\r\n\r\nJamie received his PhD in Machine Learning and Statistical Physics, along with his BSc in Theoretical Physics from the University of Nottingham.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/F9FBWD/", "id": 44293, "guid": "c0024287-df44-5934-95f4-22a9d5656b33", "date": "2024-07-11T10:20:00+02:00", "start": "10:20", "logo": null, "duration": "00:10", "room": "Function (4.1)", "slug": "juliacon2024-44293-what-s-new-with-voronoifvm-jl", "title": "What's new with VoronoiFVM.jl", "subtitle": "", "track": "Physics & Quantum Chemistry", "type": "Lightning talk", "language": "en", "abstract": "VoronoiFVM.jl solves nonlinear coupled multiphysics diffusion-reaction-convection partial differential equation systems in one, two an three space dimensions using the the Voronoi finite volume method, leveraging ForwardDifff.jl for the construction of the Jacobi matrices used by the nonlinear solver.\r\nThe talk will explain the basic ideas of the package API and give an overview on the developments since the first presentation at JuliaCon 2020, and highlight the integrative potential of Julia.", "description": "After the first presentation at JuliaCon 2020, the package has undergone a number of improvements. These include\r\n- Integration with DifferentialEquations.jl ODE solvers\r\n- Integration with LinearSolve.jl providing easy access to different linear solvers\r\n- New preconditioners for linear systems inlcuding AMGCLWrap.jl \r\n- Differentiability through Sparspak.jl\r\n- Mesh generation capabilities in accompanying packages.\r\n- Visualization capabilities in accompanying packages based on Makie.jl and PlutoVista.jl, among others \r\n- Multithreading (work in progress)\r\n\r\nThe package is used as the core solver in several research projects in fields like electrochemistry and semiconductor modeling.\r\n\r\n\r\nAs the contribution is planned as a lightning talk, presentation time will be short. I however intend to present with the help of a Pluto notebook, which (or an extended version thereof) will be made available online at the time of the talk, giving interested participants the possibility to try out computational examples showcasing the package's capabilities.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "5d83ba1e-88d3-58cc-bf99-2729013f2233", "id": 4392, "code": "XR3TFU", "public_name": "J\u00fcrgen Fuhrmann", "avatar": null, "biography": "Deputy head of numerical mathematics and scientific computing at Weierstrass Instute for Applied Analysis and Stochastics Berlin. Teaching at TU Berlin. 35 years of experience in PDE numerics and visualization. Moved from C++/python to Julia since v1.0 in 2018.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/DKSM7H/", "id": 47673, "guid": "7f86c7c7-e426-583a-9629-4f71132c4446", "date": "2024-07-11T10:30:00+02:00", "start": "10:30", "logo": null, "duration": "00:30", "room": "Function (4.1)", "slug": "juliacon2024-47673-nurturing-a-quantum-open-source-ecosystem", "title": "Nurturing a quantum open-source ecosystem", "subtitle": "", "track": "Quantum Minisymposia", "type": "Talk", "language": "en", "abstract": "In this talk I\u2019ll provide an overview of recent activities for the growth of an open-source ecosystem in quantum technology by Unitary Fund, a 501(c)3 non-profit, whose activities can be broadly divided into three groups: (1) Microgrants; (2) community activities; (3) research. I will provide an overview of 89+ microgrants awarded to date with some spotlights (Julia projects) and stats. Community activities include a lively Discord server (with many community calls and \"Quantum Wednesdays\" jour", "description": "In this talk I\u2019ll provide an overview of recent activities for the growth of an open-source ecosystem in quantum technology by Unitary Fund, a 501(c)3 non-profit, whose activities can be broadly divided into three groups: (1) Microgrants; (2) community activities; (3) research. I will provide an overview of 89+ microgrants awarded to date with some spotlights (Julia projects) and stats. Community activities include a lively Discord server (with many community calls and \"Quantum Wednesdays\" journal clubs), the Quantum Open Source Survey (featuring Julia), unitaryHACK (a special hackathon) and more. The Unitary Fund tech staff is performing research enabling open source projects in error mitigation (Mitiq) and benchmarks of quantum computer metrics (Metriq.info).", "recording_license": "", "do_not_record": false, "persons": [{"guid": "b4711f4a-41c2-54dc-b026-bfebdfca0c7b", "id": 35959, "code": "C9JWTT", "public_name": "Nathan Shammah", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/U9NF3A/", "id": 43603, "guid": "81438ee1-ab33-5c78-b8d8-81f1fbd6a93d", "date": "2024-07-11T11:00:00+02:00", "start": "11:00", "logo": null, "duration": "00:10", "room": "Function (4.1)", "slug": "juliacon2024-43603-simulating-quantum-molecular-dynamics-with-julia", "title": "Simulating quantum molecular dynamics with Julia", "subtitle": "", "track": "Physics & Quantum Chemistry", "type": "Lightning talk", "language": "en", "abstract": "In this work, we present the progress of our MolKet's Julia package that can be used to implement quantum molecular simulations with the aid of physics-informed AI. We will show the performance of our package and how it can be used to implement quantum molecular simulations for several applications.", "description": "Quantum molecular simulations are computationally expensive and require a large amount of memory. Moreover, accurate simulations may require the use of machine learning algorithms, physics-informed neural networks, and other types of algorithms such as quantum computing and quantum-inspired algorithms. Such algorithms require different types of hardware like CPUs, GPUs, TPUs, NPUs, and quantum computers. Therefore Julia is of much interest to implement quantum molecular simulations. \r\n\r\nIn this work, we present the progress of our MolKet's Julia package that can be used to implement quantum molecular simulations with the aid of physics-informed AI. We will show the performance of our package and how it can be used to implement quantum molecular simulations for several applications.\r\n\r\n\r\nKeywords: Julia, quantum molecular dynamics, physics-informed neural networks, machine learning, quantum computing, quantum-inspired algorithms, high-performance computing, GPUs, TPUs, quantum computers.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "eaba324e-cb0a-55ed-8eb3-e2d75fb3792d", "id": 39359, "code": "MQKD3X", "public_name": "Taha Selim", "avatar": "https://pretalx.com/media/avatars/linkedin_white_background_copy_l8d5n6Q.png", "biography": "- Chief Executive Officer & co-founder, MolKet.\u200b\r\n- Quantum Education Officer and Lecturer, Amsterdam University of Applied Sciences.\u200b \r\n- PhD candidate, Theoretical & Computational Chemistry, IMM, Radboud University Nijmegen, the Netherlands.\u200b \r\n- His work has been presented at international conferences, and he has published numerous peer-reviewed articles in high-impact journals. \r\n- Member of the American Physical Society (APS), the American Chemical Society (ACS), and other international societies.\u200b \r\n- M.Sc. of Quantum physics, Lasers, & Materials. \u200b\r\n- B.Sc. of Physics & Mathematics with Electronics & Communication Engineering.\u200b\r\n- Non-degree diploma in Business Administration.\u200b", "answers": []}, {"guid": "cdd27046-f3ac-58c2-9bd8-894c2dffb6f3", "id": 39437, "code": "XGFFTB", "public_name": "Alain Chanc\u00e9", "avatar": "https://pretalx.com/media/avatars/Photo_Alain_Chanc%C3%A9_heseGHw.jpg", "biography": "Alain Chanc\u00e9 is founder and CEO Quantalain SASU and Alainquant LLC, business management consulting startups. He is Chief Business, Marketing Officer and Co-founder MolKet which offers cloud-based software with AI services and solutions for molecular modeling and design using quantum and high-performance computing (HPC).\r\n\r\nHe has been a keynote co-speaker at the WAICF in Cannes, France, 9 Feb 2024, 16:35 PM to 17:00 PM CET and a co-speaker at the Quantum Innovation Summit, 2024 on 28-29 Feb in Dubai.\r\n\r\nAlain is co-author of the book \u201cQuantum Chemistry and Computing for the Curious: Illustrated with Python and Qiskit\u00ae code\u201d, Packt Publishing (2022), ISBN-13: 978-1803243900. https://www.google.fr/books/edition/Quantum_Chemistry_and_Computing_for_the/NelvEAAAQBAJ?hl=en&gbpv=1&printsec=frontcover\r\n\r\nAlain has authored the paper \"Quantum Permutation Pad with Qiskit Runtime\". In: Femmam, S., Lorenz, P. (eds) Recent Advances in Communication Networks and Embedded Systems. ICCNT 2022. Lecture Notes on Data Engineering and Communications Technologies, vol 205. Springer, Cham. https://doi.org/10.1007/978-3-031-59619-3_12\r\n\r\nHe is an IEEE Senior member, a society affiliate American Chemical Society (ACS), and a member of the American Physical Society (APS).\r\n\r\nAlain is a Qiskit\u00ae Advocate and is an IBM Certified Associate Developer - Quantum Computation using Qiskit\u00aev0.2X since 2021.\r\n\r\nHe has over 30 years of experience in major enterprise transformation projects with a focus on data management and governance gained in major management consulting firms.\r\n\r\nHe has a Master\u2019s Degree in Science & Executive Engineering from \u00c9cole des Mines de Saint-\u00c9tienne in France (1981).", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/98REDT/", "id": 43574, "guid": "4741fec5-a735-5762-89fb-1c80e0c1baac", "date": "2024-07-11T11:10:00+02:00", "start": "11:10", "logo": null, "duration": "00:10", "room": "Function (4.1)", "slug": "juliacon2024-43574-computer-aided-design-of-quantum-integrated-circuits", "title": "Computer-Aided Design of Quantum Integrated Circuits", "subtitle": "", "track": "Physics & Quantum Chemistry", "type": "Lightning talk", "language": "en", "abstract": "We present Layout.jl, a package for computer-aided design (CAD) of superconducting quantum integrated circuits. The package supports schematic-driven layout, 2D geometry rendering, and the construction and meshing of 3D models. It also provides an interface to Palace, an open-source 3D finite element solver for computational electromagnetics.", "description": "Layout.jl is a package developed at the AWS Center for Quantum Computing for computer-aided design (CAD) of quantum hardware\u2014specifically, for superconducting integrated circuits operating at microwave frequency. The package supports the generation of 2D layouts and 3D models of complex devices using a low-level geometry interface together with a high-level schematic-driven workflow. At the geometry level, the user writes code to draw 2D geometric entities like polygons and paths, optionally using units with Unitful.jl; position and orient these entities with coordinate transformations; organize them into a hierarchy of local coordinate systems and references; apply operations like rounding, offsetting, or geometric Booleans; and assign each entity metadata that can be used in different ways by different backends. In the schematic-driven workflow, the user defines components and the connectivity between them, followed by automated placement and routing with the schematic API to construct a layout. The results can be rendered with various backends, including for output in the GDSII format; used to construct and mesh a 3D model; and interfaced with other tools like the open-source electromagnetics solver Palace. Finally, we leverage the Julia package manager for process design kit (PDK) management, allowing users to maintain a library of versioned process technologies and components for portable, reproducible layout scripts.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "ef0ee532-0313-5f6b-886b-316c1c4fcd02", "id": 39343, "code": "FQCWSK", "public_name": "Greg Peairs", "avatar": "https://pretalx.com/media/avatars/headshot_2Ou2sXa.png", "biography": "Research scientist working on the design and simulation of quantum hardware at the AWS Center for Quantum Computing.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/WVWTEB/", "id": 47669, "guid": "723711e9-637f-52cc-9f99-4b03f5303e8e", "date": "2024-07-11T14:00:00+02:00", "start": "14:00", "logo": null, "duration": "00:30", "room": "Function (4.1)", "slug": "juliacon2024-47669-tensor-network-for-quantum-error-correction", "title": "Tensor network for quantum error correction", "subtitle": "", "track": "Quantum Minisymposia", "type": "Talk", "language": "en", "abstract": "Unlike classical computers, quantum computers are inherently error-prone. Quantum error correction (QEC) is a method to protect quantum information from errors. In this talk, I will introduce the basic concepts of QEC and the recent development of tensor network based QEC. I will also present the software tools: TensorQEC.jl, a Julia package for tensor network based QEC. This package will be open-sourced before the conference.", "description": "Unlike classical computers, quantum computers are inherently error-prone. Quantum error correction (QEC) is a method to protect quantum information from errors. In this talk, I will introduce the basic concepts of QEC and the recent development of tensor network based QEC. I will also present the software tools: TensorQEC.jl, a Julia package for tensor network based QEC. This package will be open-sourced before the conference.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "1cd35138-f8b3-5ee0-ba09-4b390c2ab331", "id": 1062, "code": "QBUZQE", "public_name": "JinGuo Liu", "avatar": "https://pretalx.com/media/avatars/1b8cec28040ab5f90fc731de99c7e0e9_6D2XKhI.jpg", "biography": null, "answers": []}, {"guid": "02c256bd-1028-5b0f-b7f4-62c7845bc46d", "id": 42592, "code": "EDXVFG", "public_name": "Zhongyi Ni", "avatar": "https://pretalx.com/media/avatars/thumbnail_Capture_One_Catalog0287_IUyOUSc.jpg", "biography": "I earned my bachelor's degree from Fudan University and am currently pursuing a Ph.D. at the Hong Kong University of Science and Technology (Guangzhou) under the guidance of my supervisor, Jinguo Liu. My research focuses on quantum computing and scientific computing, particularly in the areas of quantum error correction, fault-tolerant quantum computation, structural quantum computation, and tensor networks. I am open-minded and eager to learn new knowledge and skills, and I value effective communication with others.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/3UP39Z/", "id": 44208, "guid": "aaa23c73-732c-5d06-98da-0d6aede9d732", "date": "2024-07-11T14:30:00+02:00", "start": "14:30", "logo": "https://pretalx.com/media/juliacon2024/submissions/3UP39Z/piccolo-logo_MpP8xGK.jpg", "duration": "00:30", "room": "Function (4.1)", "slug": "juliacon2024-44208-piccolo-jl-an-integrated-stack-for-quantum-optimal-control", "title": "Piccolo.jl: an integrated stack for quantum optimal control", "subtitle": "", "track": "Quantum Minisymposia", "type": "Talk", "language": "en", "abstract": "We are presenting updates to the Piccolo.jl family of Julia packages, including NamedTrajectories.jl and QuantumCollocation.jl. New features include robust control, leakage suppression, subspace gate optimization, improved unitary geodesic initialization, easy-to-use and powerful plotting tools, expanded documentation, and new examples. We will also present some of our results on hardware and the future roadmap for Piccolo.jl.", "description": "[Piccolo.jl](/~https://github.com/aarontrowbridge/Piccolo.jl) is a meta-package for setting up, solving, and analyzing quantum optimal control problems using Pad\u00e9 Integrator Collocation (PICO) method, detailed in our award-winning, peer-reviewed paper [Direct Collocation for Quantum Optimal Control](https://arxiv.org/abs/2305.03261) (submitted and received best paper award at IEEE QCE23). Software development is supported by [the Unitary Fund](https://unitary.fund/) where we host weekly live-coding sessions in the discord channel!\r\n\r\n---\r\n_AG was supported by an appointment to the Intelligence Community Postdoctoral Research Fellowship Program at University of Chicago administered by Oak Ridge Institute for Science and Education (ORISE) through an interagency agreement between the U.S. Department of Energy and the Office of the Director of National Intelligence (ODNI)._", "recording_license": "", "do_not_record": false, "persons": [{"guid": "ceb8c2dd-0b86-533d-a531-d879ec9c13a3", "id": 26374, "code": "YYGFAX", "public_name": "Aaron Trowbridge", "avatar": "https://pretalx.com/media/avatars/IMG_6644_2_L9wLL8I.jpeg", "biography": null, "answers": []}, {"guid": "1638296c-15f3-54eb-b597-eb0e372dcc39", "id": 44993, "code": "PJ3XWL", "public_name": "Andy Goldschmidt", "avatar": "https://pretalx.com/media/avatars/2023-10-24_JW_IC_Post_Doc_Andrew_Goldschmidt_SmSBccj_oUpLevM.jpg", "biography": "Andy J. Goldschmidt is an IC Postdoc at the University of Chicago. He works on methods for automated quantum control and calibration in the Department of Computer Science with Fred Chong.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/KUUH8B/", "id": 44450, "guid": "4fd49bee-4cb5-5c2d-aac1-379618d647fa", "date": "2024-07-11T15:00:00+02:00", "start": "15:00", "logo": null, "duration": "00:30", "room": "Function (4.1)", "slug": "juliacon2024-44450-composable-api-for-quantum-networking-protocols", "title": "Composable API for Quantum Networking Protocols", "subtitle": "", "track": "Quantum Minisymposia", "type": "Talk", "language": "en", "abstract": "The lack of composable APIs for the design and development of networking protocols in most available modeling tools is a severe drain on developer productivity. We present a family of abstractions and APIs, together with their implementation in the QuantumSavory.jl package, which make it possible to design large-scale quantum networking simulations in a scalable and manageable way.", "description": "A number of popular simulation frameworks exist for modeling quantum networks, aiming at both research questions and at informing future designs and hardware deployments. Developing and testing network protocols is a core capability for such tools, however good abstractions in that domain are sorely missing: it is hard to create a stack of protocols that do not depend on each-other's internals, a recipe for bugs, slow progress, and developer pain. In this talk we present a family of abstractions and an API which make protocol development much easier.\r\n\r\nBehind the scenes we build on the QuantumSavory package we are developing at the the NSF's Center for Quantum Networks. The tool includes a symbolic algebra system for describing quantum states, multiple backend simulators that can seamlessly interoperate, and strong debugging and visualization capabilities, which are presented throughout the talk.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "2064bb1c-2bf0-58ef-a845-ba48aaec1654", "id": 26356, "code": "A7GLES", "public_name": "Stefan Krastanov", "avatar": null, "biography": "Stefan works on the design, control, and optimization of quantum hardware for computation and networking, from its analog physical description up to the compilation of error-corrected logical circuitry running on it. His research centers around leaky abstraction boundaries between the many layers of technologies making up the field of quantum computing and quantum information science. He received his doctorate from Yale's Quantum Institute under Liang Jiang and was a postdoc at MIT's Quantum Photonics group under Dirk Englund. He recently started his own group as faculty at UMass Amherst.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/TTSXAN/", "id": 43505, "guid": "4a6c7afe-5df1-54e5-9386-bc98805431b5", "date": "2024-07-11T15:30:00+02:00", "start": "15:30", "logo": null, "duration": "00:30", "room": "Function (4.1)", "slug": "juliacon2024-43505-projector-monte-carlo-and-exact-diagonalisation-with-rimu-jl", "title": "Projector Monte Carlo and exact diagonalisation with Rimu.jl", "subtitle": "", "track": "Quantum Minisymposia", "type": "Talk", "language": "en", "abstract": "Rimu.jl aims to be an extensible platform for quantum many-body calculations. We have implemented the full configuration interaction quantum Monte Carlo (FCIQMC) algorithm and exact diagonalisation for quantum many-body models defined through a universal interface. The pure Julia implementation relies on native threading and uses MPI.jl for inter-node parallelism on the HPC. We will showcase solving an impurity problem in the Bose-Hubbard model where the linear matrix dimension exceeds `10^60`.", "description": "Quantum many-body physics problems map into linear-algebra problems of a size that grows exponentially with the number of constituent particles. While exact diagonalisation is useful for small toy problems, it quickly becomes infeasible. Projector quantum Monte Carlo aims at providing a stochastic sample of the ground state wave function (or extremal eigenpair) for larger quantum Hamiltonians.\r\n\r\nIn this talk we will discuss how we implemented a flavour of projector quantum Monte Carlo (FCIQMC), which can be seen as a simple stochastic extension of exact diagonalisation, in native Julia. The package is designed to be fully extensible with interfaces. This allows for the easy implementation of custom many-body models or modification of the stochastic algorithms. Besides the option to convert small-enough models into sparse matrices for use with standard linear algebra solvers, Rimu.jl also allows for the matrix-free exact diagonalisation of model Hamiltonians with the external package Krylovkit.jl.\r\n\r\nThe choice of Julia as a language was ideal for this software project where speed and performance-tuning of hot-loop code is critical, while the flexibility of experimenting with models and algorithms as well as the ease of data analysis (all in the same language) enhances productivity greatly. After giving a quick tour of what you can do with Rimu.jl, we will discuss the structure of the package and some of the design choices around parallelisation by threading and message passing (mpi).\r\n\r\nFCIQMC is already popular in quantum chemistry (targeted by existing Fortran codes) and could be useful in a number of different domains. We are looking for new users, collaborators and contributors who may be interested in exploring new use cases or extensions for Rimu.jl.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "832002f5-971f-5413-a6f2-5440e09560f2", "id": 39285, "code": "YGNY3T", "public_name": "Joachim Brand", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/YTXKB7/", "id": 43450, "guid": "42bb8446-1384-591a-9217-3b06e677b5f0", "date": "2024-07-11T16:00:00+02:00", "start": "16:00", "logo": "https://pretalx.com/media/juliacon2024/submissions/YTXKB7/JuliaConImage_mLY5eB5.png", "duration": "00:30", "room": "Function (4.1)", "slug": "juliacon2024-43450-itensornetworks-jl", "title": "ITensorNetworks.jl", "subtitle": "", "track": "Quantum Minisymposia", "type": "Talk", "language": "en", "abstract": "ITensorNetworks.jl is a Julia package for constructing, optimizing and manipulating tensor networks of arbitrary structure. Tensor networks are a compressed format for high-dimensional data structures and have found application in an ever-growing list of fields like quantum computation, machine learning, classical differential equation solving and finance. ITensorNetworks.jl combines the indexing system from ITensors.jl with simple code for constructing and manipulating graphs to offer the user", "description": "Tensor networks are a representation of high dimensional tensors as a connected network of lower dimensional tensors. This means they can be used to solve problems, such as those involving many-body quantum systems, which are beyond the reach of conventional brute-force methods. Existing codes and algorithms for manipulating tensor networks, however, are often hard-coded to specific network structures \u2013 most prominently the one-dimensional chain. ITensorNetworks.jl moves beyond this by being built upon code which makes no explicit assumption about the geometry of the tensor network, providing an unprecedented degree of freedom to the user when tackling high-dimensional problems. In this talk I will detail the structure and features of the ITensorNetworks.jl package. I will present examples of code written using the library and discuss its ongoing application in quantum simulation. Finally, I will discuss future plans for the library.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "1f266853-042d-50a1-af0a-ad72eae8db85", "id": 33448, "code": "37SZKY", "public_name": "Joseph Tindall", "avatar": "https://pretalx.com/media/avatars/Pic_e7ZLadx.jpeg", "biography": "I am a postdoctoral researcher at the Centre for Computational Physics, part of the Flatiron Institute in New York. I have a keen interest in the development of tensor network algorithms for solving quantum many-body problems.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/8AJJ9U/", "id": 46579, "guid": "7a9d7d83-88f4-5b30-a102-837253bf0302", "date": "2024-07-11T16:30:00+02:00", "start": "16:30", "logo": null, "duration": "00:10", "room": "Function (4.1)", "slug": "juliacon2024-46579-on-physics-informed-automatic-differentiation", "title": "On physics-informed automatic differentiation", "subtitle": "", "track": "Quantum Minisymposia", "type": "Lightning talk", "language": "en", "abstract": "The growing availability of automatic differentiation (AD) tools promises numerous applications for enhancing large-scale scientific simulations, from sensitivity analysis to machine learning. However, the interplay of AD (\"the gradient you get\") and numerical analysis, implicit differentiation and physical symmetries (\"the gradient you want\") is nontrivial. I will briefly present such considerations on examples from materials science (density-functional theory) in DFTK.jl.", "description": "The growing availability of automatic differentiation (AD) tools promises numerous applications for enhancing large-scale scientific simulations, from sensitivity analysis to machine learning. However, the interplay of AD (\"the gradient you get\") and numerical analysis, implicit differentiation and physical symmetries (\"the gradient you want\") is nontrivial. I will briefly present such considerations on examples from materials science (density-functional theory) in DFTK.jl.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "1404208d-603b-58a8-873f-17d83d4b0d36", "id": 41701, "code": "3X7QPV", "public_name": "Niklas Schmitz", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/SK9ZYF/", "id": 44325, "guid": "c23581ed-ca58-5624-b3c1-8855d68c127a", "date": "2024-07-11T16:40:00+02:00", "start": "16:40", "logo": null, "duration": "00:10", "room": "Function (4.1)", "slug": "juliacon2024-44325-fermigasmodels-jl-structure-factors-for-fermions", "title": "FermiGasModels.jl: Structure factors for fermions", "subtitle": "", "track": "Quantum Minisymposia", "type": "Lightning talk", "language": "en", "abstract": "The structure factors and pair correlation functions for Fermi gases contain important information on electron-electron correlations, density and magnetic response to external fields, ground-state energy, etc. This package collects algorithms implementing the most popular models commonly used to predict fermionic structure factors, across a wide range of temperatures, interaction parameters, polarizations and dimensionalities.", "description": "The Fermi gas is one of the most fundamental models in quantum mechanics that yields surprisingly good descriptions of electronic properties in metals and semiconductors. The static pair correlation functions $g_2(r)$, and equivalently, the structure factors $S(k)$ for Fermi gases describe pairwise electron-electron correlations. Many physical quantities can be derived from these functions, including density and magnetic response to external fields. Many models exist that predict the pair statistics of Fermi gases, but information about the models is very scattered in the existing literature, with different papers on different models, dimensions, polarization ratios, temperatures and interaction parameters. This presents a significant obstacle in theoretical and experimental research on fermionic systems. With FermiGasModels.jl, Julians now have one-stop access to the existing models across a wide range of the aforementioned variables!\r\n\r\nThe models we implement include:\r\n- Random phase approximation\r\n- Hubbard approximation\r\n- STLS [Singwi et al, Phys. Rev. (1968)] and its approximants using analytical functions [see e.g. Gold and Calmels, PRB (1993)]\r\n- DFT model due to [Davoudi et al. PRB (2003)]", "recording_license": "", "do_not_record": false, "persons": [{"guid": "11765c0a-559f-534c-ba46-679536b467c7", "id": 24406, "code": "8DNHYV", "public_name": "Haina Wang", "avatar": "https://pretalx.com/media/avatars/3957c94a3ddbbc2cb7f21b34c2b21e7d_qznyaAE.jpg", "biography": "I am a graduate student in chemistry at Princeton. Julian since 2022. I will start a postdoc at Penn/UChicago/UCLA soon! :)", "answers": []}], "links": [], "attachments": [], "answers": []}], "While Loop (4.2)": [{"url": "https://pretalx.com/juliacon2024/talk/NCVSZ3/", "id": 39850, "guid": "9f1b74dc-6703-5ad6-a5d2-5645c3f6d325", "date": "2024-07-11T10:00:00+02:00", "start": "10:00", "logo": null, "duration": "00:30", "room": "While Loop (4.2)", "slug": "juliacon2024-39850-matlab-julia-", "title": "MATLAB |> Julia \ud83d\ude0a", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "In this talk I will walk through 4 different practical examples of using Julia and share some of the things that caught my attention coming from MATLAB. The talk will go through the 4 projects I used to get my hands dirty with Julia. It is a representation of the things I stumbled across in my first 10h of Julia.", "description": "In this talk I will walk through 4 different practical examples of using Julia and share some of the things that caught my attention coming from MATLAB, as an experienced MATLAB developer. The talk will go through the 4 projects I used to get my hands dirty with Julia.\r\n\r\nThe 4 examples are:\r\n- 2D and 3D plotting\r\n- Reading external files and working with tables\r\n- Step Response of a Control System\r\n- Testing and developing a Julia Package", "recording_license": "", "do_not_record": false, "persons": [{"guid": "cbe59150-1e70-5115-9d6b-69f7b5557cdd", "id": 37300, "code": "NWQRCA", "public_name": "Gareth Thomas", "avatar": null, "biography": "Gareth Thomas (LinkedIn) is one of the Co-Founders of VersionBay with the vision to empower companies to make the most of their software stacks. He is mainly responsible for Business Development, Sales and Marketing. \r\n\r\nGareth is very passionate about technology and is fueled by enthusiastic new ideas and thoughts. The decision to start VersionBay is due to his continuous will to embrace change, to adapt and to live life with no regrets.\r\n\r\nGareth was born in Johannesburg but has lived in 7 different countries, of which his favorite country was Macau. He loves traveling and exploring new places with different people. One of the most marking moments in his life was when he traveled alone to New York. While walking in the streets of Manhattan he realized that anything would be possible if you really want it.\r\n\r\nHe started his career after graduating in 2005, as a MSc. Electrical Engineer \u2013 specialized in Control Theory from Instituto Superior T\u00e9cnico (now known as T\u00e9cnico Lisboa). It was during his time at University that he was first exposed to MATLAB. He started using Julia in 2022, as he is the one of the main drivers of the Julia Community in the Eindhoven region.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/FBTMTQ/", "id": 44403, "guid": "71ff65a3-7e7b-59ef-9ffb-808b2c20412d", "date": "2024-07-11T10:30:00+02:00", "start": "10:30", "logo": null, "duration": "00:30", "room": "While Loop (4.2)", "slug": "juliacon2024-44403-blending-the-gap-mixing-matlab-with-julia", "title": "Blending the gap: mixing MATLAB with Julia", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "Interfacing MATLAB with Julia (and the other way) is still clunky and not very \"ergonomic\" (from a software development point of view). We propose for a new software component that sits in between MATLAB and Julia that would allow to transparently interface these two worlds.", "description": "Julia and MATLAB are very different beasts and they cannot easily talk to each other. Multiple solutions were developed to allow these two worlds to communicate. But most of these solutions relies on methods of communications that are not very \"ergonomic\" from a software developer point of view. In other words, there is always a syntactic price to pay in order to call a function or access a data structure. This is undesirable from multiple aspects, mostly because it renders the code hard to read and might introduce extra complexity in order to marshal data structures between these two worlds. There is another way that might be useful to craft a series of interfaces that might allow MATLAB to transparently call Julia, allowing MATLAB developers to try what Julia can provide without the initial cost of learning another programming language or using a weird API to call/translate data structures between worlds.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "29a7262c-c2d5-5b00-a7d0-392a2ce5d17b", "id": 39963, "code": "HJJPLD", "public_name": "Paolo Accordini", "avatar": null, "biography": "Love everything computing (from Turing machines to microkernel operating system design), love programming (C/C++ developer at heart, with lots of Python experience and just started with Julia and Rust), math, physics and nanotechnology. Working as a functional design engineer in ASML, trying to bring some joy-lia to in a gray world built on top of MATLAB.", "answers": []}, {"guid": "645e2d96-6ae0-5555-9f0e-bbb066fb7719", "id": 42250, "code": "SDE3NR", "public_name": "Joris Belier", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/DGGFYA/", "id": 43332, "guid": "dd9d789e-e773-540b-987a-56ac65726aaa", "date": "2024-07-11T11:00:00+02:00", "start": "11:00", "logo": null, "duration": "00:10", "room": "While Loop (4.2)", "slug": "juliacon2024-43332-bias-correcting-methods-for-climate-models", "title": "Bias correcting methods for climate models", "subtitle": "", "track": "General", "type": "Lightning talk", "language": "en", "abstract": "In this talk, we present [QuantileMatching.jl](/~https://github.com/JuliaExtremes/Quantile), a package that provides exhaustive high-performance functions to perform quantile matching of an actual distribution and a target distribution with Julia. The functionalities will be illustrated in this talk with stationary examples of climate models and the impacts of bias correction.", "description": "Quantile mapping is a statistical technique used in hydrology and climatology to adjust the distribution of observed data to match a desired distribution, typically that of a climate model or historical record. This method involves mapping the quantiles of the observed data to the corresponding quantiles of the reference distribution, ensuring a more accurate representation of extreme events and improving the reliability of climate projections. By aligning the distributions, quantile mapping helps address biases in climate model outputs and enhances the utility of climate information for impact assessments and decision-making.\r\n\r\nThere are several types of quantile mapping methods, each with its specific approach to adjust the distribution of observed data to a reference distribution. Generally speaking, methods are classified within parametric or non-parametric categories.\r\n\r\nIn a stationary context, quantile mapping assumes a constant relationship between observed and reference distributions over time.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "899c021a-3450-563b-aff9-97bdaa9bf120", "id": 39147, "code": "Q3VMWM", "public_name": "Charles Marois", "avatar": "https://pretalx.com/media/avatars/coveo-charles_pvHQ3px.jpg", "biography": "I am currently enrolled as a graduate student in applied mathematics at Ecole Polytechnique de Montr\u00e9al in Canada. My research focuses on fitting extreme statistical models to climate models in order to better predict the occurrences of natural hazards like extreme rainfalls or heat waves. Ultimately, my research will benefit governments and engineers so that new infrastructure and urban planning can withstand extreme events. On another level, I also work as a senior software engineer at Coveo, a genAI platform that creates relevant experiences for customers online.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/FWD39E/", "id": 44311, "guid": "0ae3ae6a-c00d-5e42-9b4b-4e96774e03a1", "date": "2024-07-11T11:10:00+02:00", "start": "11:10", "logo": "https://pretalx.com/media/juliacon2024/submissions/FWD39E/talk_BOp0ma3.png", "duration": "00:10", "room": "While Loop (4.2)", "slug": "juliacon2024-44311-retro6502-for-8-bit-dev-smashing-a-mosquito-with-a-pile-driver", "title": "Retro6502 for 8-bit dev: smashing a mosquito with a pile driver", "subtitle": "", "track": "General", "type": "Lightning talk", "language": "en", "abstract": "Developing for the 6502 8-bit microprocessor is hard with your code confined to the platform. Retro6502 has a fast, pure Julia emulator that lets your code call Julia where development is orders of magnitude faster \u2013 you can use assembly after it works in Julia. You get\r\n- macros / code gen in Julia\r\n- Live coding / hot patching\r\n- Automated testing\r\n- Julia prototyping you can test against your 6502 code\r\n- Rewindable execution (after a test, etc.)\r\n- Read-only memory\r\n- Divergent future views", "description": "This talk will demonstrate and discuss Retro6502, an open source Julia package licensed under the MIT license and available on GitHub at /~https://github.com/zot/Retro6502.jl\r\n\r\nDeveloping for the 6502 8-bit microprocessor typically means compiling/assembling code, loading it into an emulator or a physical machine, and running and testing it there. There are advanced debugging environments like C64Debugger and the beta RetroDebugger that let you visualize memory and even use omniscient debugging, stepping backwards in time and finding the code and point in time that drew a particular pixel.\r\n\r\nDespite these advantages, there is plenty of room for improvement. Coding and testing for the 6502 is tedious. Failure is always part of programming but the slow, error prone aspects of assembly language programming make it cost even more. If your 6502 code could somehow call Julia code outside the emulator, you could prototype and test in Julia and then, after the prototype code worked properly, you could write the 6502 code, radically reducing development time and relieving a lot of pain.\r\n\r\nRetro6502 allows you to do just that. It does not implement Julia for the 6502 instruction set but it does allow you to use Julia code during development that interoperates reentrantly with 6502 code inside the emulator. Also, you don\u2019t have to write (or wait for) a C++ plugin to support extra features you want or need because you can just write them in Julia.\r\n\r\nRetro6502 initially focuses on the VIC-20 and Commodore-64 6502 architectures but provides hooks for extending into other architectures like Atari, Apple II, NES, etc.\r\n\r\nRetro6502 also supports\r\n- A machine code monitor from a 6502> prompt in the Julia REPL with a designated emulator, Commodore-64 screen, and monitoring UI.\r\n- Watching assembly language files to support live coding.\r\n- Breakpoints and watchpoints that invoke custom Julia code, conditions can include:\r\n * VIC-20/C64 raster line changes,\r\n * VIC-20/C64 bank switching,\r\n * C64 Sprite conditions (collisions, etc.),\r\n * writing into memory regions,\r\n * \u2026\r\n- Scrubbing back and forth in time and starting execution in the past to make alternate timelines.\r\n- Showing divergent future screens based on input variations.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "c337a6f1-f359-5895-8426-274b4736c39f", "id": 18463, "code": "7LCPTW", "public_name": "William R Burdick", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/L7SJGL/", "id": 44518, "guid": "8281dda4-c1af-5835-bfe2-7b11c9b022f1", "date": "2024-07-11T14:00:00+02:00", "start": "14:00", "logo": null, "duration": "00:25", "room": "While Loop (4.2)", "slug": "juliacon2024-44518-production-julia-nuts-and-bolts", "title": "Production Julia: Nuts and Bolts", "subtitle": "", "track": "Industrial Julia", "type": "Talk", "language": "en", "abstract": "Review of some (potentially opinionated) best practices for structuring Julia projects, building, and deploying.", "description": "Julia is great! Julia is awesome! Look at this super neat, heavily optimized code the knocks the socks off alternative solutions in the industry! But how the heck do I share it with the world??\r\n\r\nIn this talk, I review some best practices for deploying Julia code into \"production\", and make it consumable by users. Topics include:\r\n\r\n* How to structure an _application_ that needs to run vs. internal _libraries_ vs. using external dependencies\r\n* How do I leverage Julia's new separate package compilation work when I have lots of internal modules/subpackages?\r\n* How do I manage external dependency version tracking/coordinating across my application and other internal subpackages?\r\n* How can I manage application configuration in a way that's simple, trackable, and easy to update?\r\n* How can \"dockerize\" my application in a way that avoids duplicating external dependency downloading/building?\r\n* How do I setup an HTTP server that provides a REST API to my cool Julia functionality?\r\n* How do I utilize interactive vs. default threads in Julia for my application?", "recording_license": "", "do_not_record": false, "persons": [{"guid": "79bb8667-628f-5d5b-bb2c-aeddb458d581", "id": 1166, "code": "MQ3SJP", "public_name": "Jacob Quinn", "avatar": "https://pretalx.com/media/avatars/profile_QHEEy9o.jpeg", "biography": "Worked with Julia for a long time. Involved in many \"fundamental\" packages across the ecosystem, web or data related.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/YK9RRU/", "id": 44292, "guid": "d4433265-a9e9-51ee-b6a7-323662ea280e", "date": "2024-07-11T14:25:00+02:00", "start": "14:25", "logo": null, "duration": "00:10", "room": "While Loop (4.2)", "slug": "juliacon2024-44292-pptx-jl-an-open-source-package-by-asml", "title": "PPTX.jl an open-source package by ASML", "subtitle": "", "track": "Industrial Julia", "type": "Lightning talk", "language": "en", "abstract": "For many companies PowerPoint presentations are a common means of communication. The PPTX.jl package allows for automatically generating PowerPoint presentations filled with pictures tables and text.", "description": "Within the Julia community there are many creative and exciting ways of presenting data, however, some companies still like the safe familiarity of a PowerPoint presentation. It may not be the most fancy way of presenting data, but it gets the job done. In this talk I would like to show an open-source contribution that ASML has made to the Julia ecosystem in the form of PPTX.jl a package that allows autmatic generation of PowerPoint presentations.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "9549a224-d428-5565-98fc-9305a463a806", "id": 39895, "code": "QZBQ3L", "public_name": "Xander", "avatar": "https://pretalx.com/media/avatars/mugshot_o6cL5zL.png", "biography": "Xander de Vries studied Chemistry at the Radboud University in Nijmegen he continued his education with a PhD in Physics at the TU/e in Eindhoven. He has worked for ASML for 4 years and is now working as a Functional Architect at ASML.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/SMPJ9S/", "id": 44104, "guid": "70e891e1-bfe8-5f12-bcd8-8c377153065b", "date": "2024-07-11T15:00:00+02:00", "start": "15:00", "logo": null, "duration": "00:10", "room": "While Loop (4.2)", "slug": "juliacon2024-44104--integrating-julia-for-perception-task-in-autonomous-driving", "title": "\ud83d\ude97 Integrating Julia for Perception task in autonomous driving", "subtitle": "", "track": "Industrial Julia", "type": "Lightning talk", "language": "en", "abstract": "The talk focuses on integrating Julia in a demonstrator car (Ford mondeo) to perform perception tasks (lidar pointcloud segmentation) in real-time. \r\nA special focus is set on the Phyton - Julia interface and how both languages can work well together.", "description": "Future autonomous vehicles need to process a million LIDAR points in real time. Julia is a perfect fit for these perception tasks including ground segmentation, creation of a semantic occupancy grid or object detection. \r\nThe talk shows how to use Julia in the development of ML algorithms and integration process in a real car. Special focus will be at the algorithmic development process (compared to PyTorch), experience with the training phase, integration process in C++ / Python environments, parallelism and runtime issues.\r\nThe results presented in this talk have been created within the EU project AI4CSM (ai4csm.eu) (ECSEL Joint Undertaking program).", "recording_license": "", "do_not_record": false, "persons": [{"guid": "d14db4e2-3fd5-5059-b6e1-ec1326363324", "id": 39616, "code": "GWGT8Y", "public_name": "Gerhard Dorn", "avatar": "https://pretalx.com/media/avatars/profile_picture_DqNObDO.jpg", "biography": "Gerhard Dorn is a senior scientist at Virtual Vehicle Research GmbH in Austria with a background in mathematics and computational physics. \r\nWithin the project AI4CSM Gerhard works on LIDAR perception and the integration into the test vehicle Ford Mondeo.\r\nGerhard is an active member of the \ud83c\udf88 Pluto.jl and \u26a1 PlutoUI.jl development community and likes to organize workshops as community manager.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/U7JMMZ/", "id": 44296, "guid": "6536cb4a-7b23-536c-9f94-3edf2072c109", "date": "2024-07-11T15:20:00+02:00", "start": "15:20", "logo": null, "duration": "00:25", "room": "While Loop (4.2)", "slug": "juliacon2024-44296-unveiling-full-stack-development-with-peacefounder", "title": "Unveiling Full Stack Development with PeaceFounder", "subtitle": "", "track": "Industrial Julia", "type": "Talk", "language": "en", "abstract": "PeaceFounder is a centralised E2E verifiable e-voting system that enhances privacy and simplifies deployment by leveraging history trees and pseudonym braiding. This talk introduces it and highlights the use of Julia for its development, emphasising its strengths in suitability for complex, full-stack applications.", "description": "In conventional E2E verifiable e-voting systems such as Helios, Verificatum, ElectionGuard and others, the vote is stored in a group element, encrypted and signed with a digital identity provider, and then submitted to the bulletin board. When the vote closes, votes go through the reencryption shuffle and are decrypted in the threshold decryption ceremony. Voters can ensure that their vote has been counted by finding their encrypted vote within the list of inputs of the mix cascade. Furthermore, everyone can verify the final tally by counting the decrypted votes and verifying supplemented zero-knowledge proofs without compromising privacy. In this way, the integrity of the election result can be assured.\r\n\r\nHowever, issues like forced abstention and potential vote substitution of unverified votes can happen if authorities are corrupt and auditing/monitoring does not occur. Publishing vote-casting signatures can alleviate many of those issues, but that violates participation privacy. The threshold decryption ceremony further compounds the system's complexity; if more than a few collude, votes remain encrypted, while a low threshold risks privacy breaches. The result is that deploying current E2E verifiable voting systems is the unreachable goal for small and medium-sized organisations if privacy, integrity and robustness are assured. \r\n\r\nPeaceFounder is an alternative approach that is the first to revitalise the work proposed by Haenni & Spycher and improve it using history trees. The immutability of the bulletin board is maintained replication-free by voter\u2019s client devices with locally stored consistency-proof chains. Meanwhile, pseudonym braiding done via an exponentiation mix before the vote allows anonymisation to be transactional with a single braider at a time. In contrast to existing E2E verifiable e-voting systems, it is much easier to deploy as the system is fully centralised, free from threshold decryption ceremonies, trusted setup phases and bulletin board replication. Furthermore, the body of a vote is signed with a braided pseudonym, enabling unlimited ballot types.\r\n\r\nYou might wonder why Julia is for such a project. Julia is known for high-performance computing but has yet to be the first pick for e-voting systems, cryptographic protocols or, in fact, full-stack applications. However, its rich ecosystem and code readability, adaptability, and performance make it an excellent choice. Furthermore, Julia's robust type system and multiple dispatch capability have been instrumental in precisely modelling and efficiently implementing the core structures of PeaceFounder.\r\n\r\nIn the talk, following the introduction, I'll present a brief demo of the system. This will include server setup, registration of members, braiding, proposal announcement, voting, and, finally, the overview and auditing of the public evidence. Then, after the short demo, I will outline the project's requirements and how Julia ecosystem helps to address those needs.\r\n\r\nThe last part of the talk will concern an obvious question of why the project is not done in the Rust. The reasons will include reliance on heterogonous lists, garbage collection, and operator overloading for cryptographic operations to keep the notations aligned with pseudocodes in the papers. A rich standard library has been a big plus. In contrast, using complex external libraries like QML or SMTPClient without worrying about compilation and linking issues has been a stellar experience. Furthermore, parallelising a proof of shuffle (if the scaling ever would need to be addressed) would be a much more pleasant experience in Julia as it is a simple HPC problem and even allows to explore the utilisation of GPU with elliptic curves on binary fields while also maintaining readability of the code. \r\n\r\nHowever, the lack of ability to deploy mobile apps written in Julia will likely make Rust relevant in the future, and this will be fine. Meanwhile, figuring out the exact details of how the PeaceFounder should function and include all imaginable features that do not impede deployability is much easier in Julia. Ultimately, a detailed specification of the PeaceFounder system will be necessary, and it's better if this specification is tested in practice rather than remaining theoretical. \r\n\r\nThrough this talk, I present a convincing case for Julia as a viable candidate for complex full-stack applications. Additionally, I will introduce the PeaceFounder e-voting system, which may inspire some to try its deployment, report issues, and contribute to the project.\r\n\r\nFor more details on the system, one can view a recently presented poster on EVoteID 2023 and references at https://janiserdmanis.org/artefacts/EVOTEID-2023-poster.pdf", "recording_license": "", "do_not_record": false, "persons": [{"guid": "5138e127-9de6-5836-89d3-afc2d700f101", "id": 3897, "code": "BYKXMD", "public_name": "Janis Erdmanis", "avatar": "https://pretalx.com/media/avatars/2894312_s1hZnsJ.jpeg", "biography": "I am a full-stack Julia developer with a Ph.D. in physics from TU Delft, and I enjoy simplifying complex concepts and making the impossible possible. I have thorough experience in Julia, HTTP, QML, cryptographic protocols, and system architectures. Find more about me on [janiserdmanis.org](https://janiserdmanis.org).", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/VCPCRS/", "id": 43540, "guid": "e86e09b7-0548-558e-a121-0ac76f613e7e", "date": "2024-07-11T15:45:00+02:00", "start": "15:45", "logo": null, "duration": "00:10", "room": "While Loop (4.2)", "slug": "juliacon2024-43540-julia-at-fugro", "title": "Julia at Fugro", "subtitle": "", "track": "Industrial Julia", "type": "Lightning talk", "language": "en", "abstract": "Fugro is a global leader in geospatial data analytics, and as a part of our product workflows we need to deal with large amounts of data as efficiently as possible. In this presentation, we will describe how we use Julia to accelerate our HPC applications and how we integrate this with Amazon Web Services to distribute computing on the cloud. We will also cover some of the challenges and the insights we\u2019ve gained on working with Julia in industry.", "description": "Here at Fugro, we process large amounts of geospatial data in numerous HPC workflows to provide our clients with insights about real-world assets. Efficient processing enables faster delivery times for clients and reduced costs. We write our applications in Julia and have built systems using Github Actions that can seamlessly integrate these applications with cloud infrastructure hosted by Amazon Web Services (AWS). \r\n\r\nIn this talk, we will outline our process at Fugro to develop a production-ready HPC application with Julia. This will start with how we build these packages into binary system images and integrate them into docker images. We will then show how to use AWS and Github to deploy these docker images to a cloud environment, as well as some design considerations along the way to ensure you get the most out of your application. Throughout we will share our experiences and lessons learnt for anyone starting or considering using Julia in an industrial application.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "317dd93c-3cf1-51f8-a0b5-d69c87323a07", "id": 39312, "code": "YQSKNS", "public_name": "Ben Curran", "avatar": "https://pretalx.com/media/avatars/1663400818494_Vhbaa4C.jpeg", "biography": "Mathematician and data scientist, interested in using Julia for high performance computing and cloud workflows", "answers": []}, {"guid": "91b6daa7-4130-5638-8f6c-78a094ea340f", "id": 39313, "code": "U9XBEA", "public_name": "Dr. Megan Dawson", "avatar": "https://pretalx.com/media/avatars/Megan_Dawson_SEVT2YU.jpg", "biography": "Dr. Megan Dawson is the Modelling Automation Team lead at Fugro, responsible for numerous cloud based HPC workflows efficiently processing large amounts of geo-data. With 15 years experience in industry her passion is problem solving to developing practical (and production-able) solutions.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/F8VJAC/", "id": 43442, "guid": "2cd37dd0-c3e0-594f-bcf4-f0fafa54b097", "date": "2024-07-11T16:05:00+02:00", "start": "16:05", "logo": null, "duration": "00:25", "room": "While Loop (4.2)", "slug": "juliacon2024-43442-how-a-julia-backend-accelerates-model-based-app-development", "title": "How a Julia Backend Accelerates Model Based App Development", "subtitle": "", "track": "Industrial Julia", "type": "Talk", "language": "en", "abstract": "Integrating a model into a useful application is made challenging with today's tools. The difference in productivity that Julia offers for model-based app development creates a paradigm shift. This talk will demonstrate the workflow for developing a model integrated into an algorithm and application business logic in pure Julia, then wrapped in a c# windows desktop frontend. Benefits of this framework will be demonstrated and compared with an alternative Modelica workflow.", "description": "One of the biggest inefficiencies engineers and developers face when integrating a model into a useful algorithm or application is the dual language problem. Tools for building mathematical models are often designed purely for that task alone and are not written in a full featured programming language that allows the user to consume the model in a more useful way, such as integrating into a deployable application. The difference in productivity that Julia offers having solved the dual language problem offers a paradigm shift for model-based app development. This talk will demonstrate the workflow for developing a model using ModelingToolkit.jl and then integrating the model into a c# Windows based desktop application. The process of discovering a model bug at the end of the workflow and how this can be fixed nearly instantaneously will be demonstrated and compared with a Modelica workflow, proving an orders of magnitude improvement in development efficiency.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "5d72d89e-7e35-5f7c-a040-c8493de28b78", "id": 16567, "code": "XYB7RA", "public_name": "Bradley Carman", "avatar": "https://pretalx.com/media/avatars/biopic_cP5Br3L.jpg", "biography": "Brad Carman, Director of Consulting Services at JuliaHub, is a Mechanical Engineer with over 20 years of system modeling experience at ITW and Instron working on model based design and software applications for hydraulics, controls, heat transfer, vibrations, etc.", "answers": []}, {"guid": "28be8211-9d71-546f-b930-3349807d550c", "id": 26229, "code": "JFTD7D", "public_name": "Avinash Subramanian", "avatar": null, "biography": "Software Engineer - Simulation, Control and Optimization at JuliaHub", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/ABAQSK/", "id": 44369, "guid": "74ac8812-2453-5c77-8f6f-d6e31ad852d0", "date": "2024-07-11T16:30:00+02:00", "start": "16:30", "logo": null, "duration": "00:10", "room": "While Loop (4.2)", "slug": "juliacon2024-44369-tulipaenergymodel-jl-an-efficient-and-flexible-energy-model", "title": "TulipaEnergyModel.jl: An efficient and flexible energy model", "subtitle": "", "track": "Industrial Julia", "type": "Lightning talk", "language": "en", "abstract": "TulipaEnergyModel.jl is a Julia/JuMP package developed by TNO and eScience Center that models the electricity market and its coupling with other energy sectors (e.g., hydrogen, heat, natural gas, etc.). Its main features are flexible connection based on graph theory, flexible temporal resolution, and the use of representative periods without losing accuracy.", "description": "TulipaEnergyModel.jl provides an optimization model for the electricity market and its coupling with other energy sectors (e.g., hydrogen, heat, natural gas, etc.). The optimization model determines the optimal investment and operation decisions for different types of assets (e.g., producers, consumers, conversion, storage, and transport). Currently, TulipaEnergyModel.jl has two main core features. The first one uses graph theory for a more adaptable model representation. This representation provides a more flexible framework to model energy assets in the system as vertices, and to model flows between energy assets as edges. This carrier-agnostic approach makes it adaptable to different systems. Furthermore, in the classic approach, nodes play a crucial role in modelling. By implementing our approach, as the nodes are no longer needed to connect assets, we can connect assets directly to each other, thus reducing the model size. The other core feature is fully flexible time resolution. TulipaEnergyModel.jl can handle different time resolutions on the assets and the flows even if they are not multiples of each other. Typically, the time resolution in an energy model is hourly and fixed through most of the model. Depending on the input data and the level of detail you want to model, hourly resolution in all the variables might not be necessary. TulipaEnergyModel.jl allows different time resolutions for each asset and flow to simplify the optimization problem and approximate hourly representation. This feature is particularly useful for large-scale energy systems that involve different sectors, so greatly speeding solving times since detailed granularity is not always necessary due to the unique temporal dynamics of each sector.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "c6d00cf5-9c18-566f-9eb6-019b3d55c170", "id": 33418, "code": "MQNYYE", "public_name": "Diego Tejada", "avatar": null, "biography": "I'm an electrical engineer with extensive experience in modeling and analyzing power systems. My expertise includes developing optimization models for unit commitment, generation, and transmission expansion planning. My doctoral thesis focused on the optimization of energy storage systems under large-scale renewable penetration.", "answers": []}, {"guid": "f815af88-0117-5956-a6b7-62af44453390", "id": 46103, "code": "FNCEB3", "public_name": "Unnamed user", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/VWDUHM/", "id": 41880, "guid": "bcb31671-3151-5715-9fbf-764571ed5325", "date": "2024-07-11T16:40:00+02:00", "start": "16:40", "logo": null, "duration": "00:20", "room": "While Loop (4.2)", "slug": "juliacon2024-41880-industrial-julia-panel-discussion", "title": "Industrial Julia Panel Discussion", "subtitle": "", "track": "Industrial Julia", "type": "Minisymposium", "language": "en", "abstract": "A minisymposium dealing with the social and technical challenges of adopting Julia in an industrial environment. Speaking out on the qualms that we -- and our colleagues -- have with the language, we can start to address the real bottlenecks. At the same time, we indubitably have much to learn from each other's experiences. It could also be a motivation for others to start to make the push for Julia in their organization.", "description": "Call for Proposals:\r\nHave you deployed Julia in an industrial setting? Have you tried to teach your colleagues about Julia? We are keen to learn from you about the ups and downs of these experiences. \r\n\r\nWe are aiming to make this an open session with plenty of room for discussion with the goal of improving the adoption of Julia as an industrial language. This can focus both on actions we can immediately take ourselves as well as on actions that require input from the wider Julia community and/or the Julia core developers.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "19c56790-f5b2-5584-ad36-ca3a178f9468", "id": 38178, "code": "XN7HMC", "public_name": "Keith Myerscough", "avatar": "https://pretalx.com/media/avatars/20220512_Sioux_048_5571_wSscZXh.jpg", "biography": "After obtaining my PhD in applied mathematics in 2015 and a short adventure as a postdoc, I joined Sioux Mathware as a Mathware Engineer in 2017. In that time I have done many projects solving mathematical problems for a wide variety of customers, but I have also started to focus more on the question of how the department as a whole can improve the quality of its deliverables. In this role, I have taken a keen interest in the Julia language, as it promises us to easily write software that is both legible and performant. Over the past year and a bit, this has materialized into contributing to the deployment of Julia at one of our customers. I am also busy building a cross-department Julia competence within Sioux.", "answers": []}, {"guid": "5662ecb0-440a-565b-a824-d828960f74aa", "id": 40401, "code": "WKZUP3", "public_name": "Tom Lemmens", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/TZAVVB/", "id": 49627, "guid": "48c6aeef-2faa-5e25-82a7-e7bfba776c90", "date": "2024-07-11T18:30:00+02:00", "start": "18:30", "logo": null, "duration": "03:00", "room": "While Loop (4.2)", "slug": "juliacon2024-49627-diversity-dinner-and-discussion", "title": "Diversity Dinner and Discussion", "subtitle": "", "track": "Community", "type": "Workshop", "language": "en", "abstract": "Join us to learn how to get involved with diversity initiatives within the Julia community! This is a great opportunity to meet new people and work on a meaningful project.", "description": "We invite you to attend the Diversity Dinner and Discussion, an evening event focused on Diversity, Equity, and Inclusion (DEI) initiatives within the Julia Language community. At this event, various community DEI organizations will discuss their efforts to make the Julia community more welcoming and increase user diversity. We will have a hands-on activity where attendees will design a mentoring platform to help new members break into the Julia community and contribute to projects they care about. We hope to have a fun discussion-based event focused on empowering attendees to make an impact on diversity within the Julia community while creating networking opportunities between people from different backgrounds.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "4325bbda-0b4b-5242-ab62-b1b52e125a1d", "id": 37721, "code": "TVLJ8S", "public_name": "Skylar Gering", "avatar": "https://pretalx.com/media/avatars/sky_github_nNem9wh.jpg", "biography": "I am a research software engineer working on both sea ice modeling and computational geometry in Julia.", "answers": []}, {"guid": "e0082c95-2d83-50fc-8c5e-4f0e6dea5024", "id": 16723, "code": "U3WPAA", "public_name": "Let\u00edcia Madureira", "avatar": "https://pretalx.com/media/avatars/WhatsApp_Image_2022-01-31_at_10.04.41_HlDmmpo.jpeg", "biography": "Leticia Madureira is a PhD student in theoretical chemistry at Carnegie Mellon University. Her interests go from materials applications of molecular environments, focusing on studying conjugated systems and their quantum coherence, but also developing methods on the realm of electronic structure methods. She has been using Julia for 4 years and her goal is to answer fundamental scientific equations with high performance software engineering.", "answers": []}, {"guid": "8a867968-566c-565c-811d-361b8da83bb0", "id": 39989, "code": "9EVPUA", "public_name": "Kim Louisa Auth", "avatar": null, "biography": null, "answers": []}, {"guid": "40f11e7c-8b04-5f27-9713-fe19871fc0ef", "id": 9292, "code": "WNALCB", "public_name": "Jacob Zelko", "avatar": "https://pretalx.com/media/avatars/jacob_cropped_e54MHEE.jpg", "biography": "Co-Admin for Julia Summer of Code 2024, Leader of the JuliaHealth Organization, Educational Twitch Streamer, Trainee Affiliate at the Roux Institute and Applied Mathematics Graduate student at Northeastern University", "answers": []}], "links": [], "attachments": [], "answers": []}]}}, {"index": 4, "date": "2024-07-12", "day_start": "2024-07-12T04:00:00+02:00", "day_end": "2024-07-13T03:59:00+02:00", "rooms": {"REPL (2, main stage)": [{"url": "https://pretalx.com/juliacon2024/talk/H3LLTK/", "id": 45605, "guid": "48518b37-8974-5cc0-b4a4-0715311c8a0a", "date": "2024-07-12T09:00:00+02:00", "start": "09:00", "logo": null, "duration": "01:00", "room": "REPL (2, main stage)", "slug": "juliacon2024-45605-natural-artificial-intelligence", "title": "Natural Artificial Intelligence", "subtitle": "", "track": "AI/ML/AD", "type": "Keynote", "language": "en", "abstract": "Large language model-based chatbots such as chatGPT are very impressive, but you cannot ask them to go out and learn how to ride a bike. Learning how to ride a bike is about an agent that learns a skill through efficient, real-time interactions with a dynamic environment. In this presentation, I will discuss the underlying technology that enables brains to learn new skills and acquire knowledge solely through unsupervised environmental interactions.", "description": "Large language model-based chatbots such as chatGPT are very impressive, but you cannot ask them to go out and learn how to ride a bike. Learning how to ride a bike is about an agent that learns a skill through efficient, real-time interactions with a dynamic environment. In this presentation, I will discuss the underlying technology that enables brains to learn new skills and acquire knowledge solely through unsupervised environmental interactions. How much do we understand about what brains compute? And is this knowledge transferable to AI engineering systems? I will discuss Karl Friston\u2019s Free Energy Principle, which is the theory on what, why and how brains compute. I will also discuss the efforts of our research lab (http://biaslab.org) at TU Eindhoven to develop a Julia ecosystem of packages to support transfer of these ideas to working AI engineering tools.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "c5da175a-babc-5b0c-a55e-8bee464a6051", "id": 39578, "code": "VVBGH7", "public_name": "Bert de Vries", "avatar": "https://pretalx.com/media/avatars/bert-portrait_S58w7o3.png", "biography": "Bert de Vries received MSc (1986) and PhD (1991) degrees in Electrical Engineering from Eindhoven University of Technology (TU/e) and the University of Florida, respectively. From 1992 to 1999, he worked as a research scientist at Sarnoff Research Center in Princeton (NJ, USA). Since 1999, he has been employed in the hearing aid industry, both in engineering and managerial positions. De Vries was appointed professor in the Signal Processing Systems Group at TU/e in 2012. His research focuses on the development of intelligent autonomous agents that learn from in-situ interactions with their environment. We aim to use these agents to automate the development of novel signal processing and control algorithms, see biaslab.org. Our research draws inspiration from diverse fields including computational neuroscience, Bayesian machine learning, and signal processing systems. A current major application area concerns the personalization of medical signal processing systems such as hearing aid algorithms.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/TJQJGZ/", "id": 43515, "guid": "79c8f8d8-ee61-5b0f-95a9-46792a82484e", "date": "2024-07-12T10:00:00+02:00", "start": "10:00", "logo": "https://pretalx.com/media/juliacon2024/submissions/TJQJGZ/wide_logo_0TuIycG.png", "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-43515-what-s-new-in-trustworthy-ai-in-julia-taija-", "title": "What's new in Trustworthy AI in Julia (Taija)?", "subtitle": "", "track": "AI/ML/AD", "type": "Talk", "language": "en", "abstract": "[Taija](/~https://github.com/JuliaTrustworthyAI) is a growing ecosystem of packages geared towards *T*rustworthy *A*rtificial *I*ntelligence in *J*uli*a*. This talk will provide an update on recent developments of some of our core packages. In particular, the focus will be on contributions made by two groups of students from TU Delft, as well as ongoing JSoC work.", "description": "Julia\u2019s ecosystem for Artificial Intelligence (AI) and Machine Learning (ML) has been growing at a relatively rapid pace, perhaps most notably so in the [SciML](https://sciml.ai/) domain but also more broadly (e.g.\u00a0[Flux](https://fluxml.ai/), [MLJ](https://juliaai.github.io/MLJ.jl/stable/), [JuliaGenAI](/~https://github.com/JuliaGenAI/juliagenai.org), \u2026). The goal of Taija is to make AI models more trustworthy, where we have so far focused primarily on the interplay with packages in the latter category.\r\n\r\n## \ud83c\udfe0 About\r\n\r\nTaija currently covers a range of approaches towards making AI systems more trustworthy:\r\n\r\n- Model Explainability ([CounterfactualExplanations.jl](/~https://github.com/JuliaTrustworthyAI/CounterfactualExplanations.jl))\r\n- Algorithmic Recourse ([CounterfactualExplanations.jl](/~https://github.com/JuliaTrustworthyAI/CounterfactualExplanations.jl), [AlgorithmicRecourseDynamics.jl](/~https://github.com/JuliaTrustworthyAI/AlgorithmicRecourseDynamics.jl))\r\n- Predictive Uncertainty Quantification ([ConformalPrediction.jl](/~https://github.com/JuliaTrustworthyAI/ConformalPrediction.jl), [LaplaceRedux.jl](/~https://github.com/JuliaTrustworthyAI/LaplaceRedux.jl))\r\n- Effortless Bayesian Deep Learning ([LaplaceRedux.jl](/~https://github.com/JuliaTrustworthyAI/LaplaceRedux.jl))\r\n- Hybrid Learning ([JointEnergyModels.jl](/~https://github.com/JuliaTrustworthyAI/JointEnergyModels.jl))\r\n\r\nVarious meta packages can be used to extend the core functionality:\r\n\r\n- Plotting ([TaijaPlotting.jl](/~https://github.com/JuliaTrustworthyAI/TaijaPlotting.jl))\r\n- Datasets for testing and benchmarking ([TaijaData.jl](/~https://github.com/JuliaTrustworthyAI/TaijaData.jl))\r\n- Parallelization ([TaijaParallel.jl](/~https://github.com/JuliaTrustworthyAI/TaijaParallel.jl))\r\n- Interoperability with other programming languages ([TaijaInteroperability.jl](/~https://github.com/JuliaTrustworthyAI/TaijaInteroperability.jl))\r\n\r\nThe [TaijaBase.jl](/~https://github.com/JuliaTrustworthyAI/TaijaBase.jl) package provides common symbols, types and functions that are used across all or multiple Taija packages.\r\n\r\n## \ud83d\udee0\ufe0f Recent Developments\r\n\r\nA lot has happened since we presented some of our core packages at JuliaCon in 2022 and 2023. During the past year, the focus has been on extending and improving these existing packages. Various groups of undergraduate students at TU Delft as well as a few external collaborates have contributed to these efforts.\r\n\r\n### CounterfactualExplanations.jl\r\n\r\n`CounterfactualExplanations.jl` is a package for Counterfactual Explanations and Algorithmic Recourse in Julia.\r\n\r\n- The code base has been streamlined to make it more accessible to new contributors. (students)\r\n- Part of this involved moving functionality out of the package into new meta-packages. (students)\r\n- Multiple new counterfactual generators including FeatureTweak for decision trees and random forests. (students)\r\n- Improved interoperability with Python and R through `TaijaInteroperability.jl`. (students)\r\n- Integration of ECCCo generator for faithful model explanations (Altmeyer et al. 2024).\r\n- Huge improvements to computational speed and native support for multi-threading and multi-processing.\r\n\r\n### LaplaceRedux.jl\r\n\r\n`LaplaceRedux.jl` is a package for effortless Bayesian Deep Learning through Laplace Approximation for `Flux.jl` neural networks.\r\n\r\n- Support for multi-class problems. (students)\r\n- Support for more sophisticated and scalable Hessian approximations. (students)\r\n- Interface to MLJ for easy model training and evaluation. (students)\r\n\r\n### Students\u2019 Experience\r\n\r\nI will also briefly report back on the students\u2019 experience working on these projects. This includes the challenges they faced, the skills they acquired, and the impact they had on the Taija ecosystem.\r\n\r\n## \ud83c\udfaf Ongoing and Future Projects\r\n\r\nTaija has been running two Julia Season of Code projects this summer.\r\n\r\n1. (*Conformal Bayes*) Bridging the gap between Bayesian and frequentist approaches to Predictive Uncertainty Quantification.\r\n2. (*Causal Recourse*) From minimal perturbations to minimal interventions for Algorithmic Recourse.\r\n\r\nFinally, we are also working with a group of students on [TaijaInteractive.jl](/~https://github.com/JuliaTrustworthyAI/TaijaInteractive.jl): a Genie-based web application for interactive model explanations.\r\n\r\n## \ud83d\udcda References\r\n\r\nAltmeyer, Patrick, Mojtaba Farmanbar, Arie van Deursen, and Cynthia CS Liem. 2024. \u201cFaithful Model Explanations Through Energy-Constrained Conformal Counterfactuals.\u201d In *Proceedings of the AAAI Conference on Artificial Intelligence*, 38:10829\u201337. 10.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "6e0a1a82-e135-5f29-993d-58e18117eea2", "id": 17382, "code": "8DGYCX", "public_name": "Patrick Altmeyer", "avatar": "https://pretalx.com/media/avatars/avatar_K2fis16.jpeg", "biography": "I\u2019m a PhD student at Delft University of Technology working on the intersection of Trustworthy Artificial Intelligence and Finance. My current research revolves around Counterfactual Explanations and Probabilistic Machine Learning. Previously, I worked as an Economist for the Bank of England.\r\n\r\nI started working with Julia at the beginning of PhD in late 2021 and have since developed and used various packages, some of which I presented at JuliaCon 2022 and 2023. These packages now have a common home called [Taija](/~https://github.com/JuliaTrustworthyAI), which stands for Trustworthy Artificial Intelligence in Julia.\r\n\r\nYou can find out more about my work on my [website](https://www.paltmeyer.com/).", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/9AMPUD/", "id": 44274, "guid": "c72b2799-171b-53ff-af17-db5b957a06d2", "date": "2024-07-12T10:30:00+02:00", "start": "10:30", "logo": "https://pretalx.com/media/juliacon2024/submissions/9AMPUD/copiertemplate.jl-logo_sXHYKwx.png", "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-44274-best-practices-for-package-development-using-copiertemplate-jl", "title": "Best practices for package development using COPIERTemplate.jl", "subtitle": "", "track": "Julia Internals and Tooling", "type": "Talk", "language": "en", "abstract": "COPIERTemplate.jl is a template for creating packages following opinionated package development practices. It can be used via Julia or as a Copier template. The main advantages of a Copier template are that it allows applying a template to an existing repository and reapplying a template in order to get the updates since that last template application. The template serves as a snapshot of what are the current package development best practices, and will be updated when more tools are avaiable.", "description": "COPIERTemplate.jl is a template for the engine Copier (https://copier.readthedocs.io/en/stable/). It contains opinionated software development best practices that we adopt in some of our packages. These include traditional Julia package requirements, such as a src, test and docs folder structure, README and LICENSE files, GitHub workflows for testing, documentation, CompatHelper and TagBot. However, it also includes other best practices, such as linting and formatting specification files, pre-commit hooks, and CITATION.cff files.\r\n\r\nCOPIERTemplate.jl can be applied and reapplied to existing packages, as supported by Copier. This means that the best practices can be updated in the template and propagated to packages using it. This solves issues with outdated practices and also allows older packages to improve their package very quickly.\r\n\r\nCOPIERTemplate.jl is also a Julia package, created from the template that it stores. As a package, it wraps some functionalities of Copier to allow users to use the template without having to install Copier directly.\r\n\r\nFinally, COPIERTemplate.jl has a GitHub workflow that automatically checks for updates for the template and tries to apply it in the current project.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "d0ad7f04-4dab-598b-b3bd-7596d8e9c618", "id": 32516, "code": "3RVYDP", "public_name": "Abel Soares Siqueira", "avatar": "https://pretalx.com/media/avatars/me_9r7HH3K.jpg", "biography": "Research Software Engineer.\r\nCo-creator of JuliaSmoothOptimizers.\r\nYouTuber.\r\nhttps://abelsiqueira.com", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/MSHLDP/", "id": 39781, "guid": "04c96143-066f-5657-8140-f2372decea0d", "date": "2024-07-12T11:00:00+02:00", "start": "11:00", "logo": null, "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-39781-kezdi-jl-bridging-stata-and-julia-for-economists", "title": "Kezdi.jl: Bridging Stata and Julia for Economists", "subtitle": "", "track": "Economics", "type": "Talk", "language": "en", "abstract": "This talk introduces Kezdi.jl, a Julia package designed to ease the transition for Stata users into Julia's data analysis ecosystem. Recognizing Stata's limitations with big data and its cost, Kezdi.jl offers Stata-like syntax for data wrangling, exploratory analysis, and regression in Julia, leveraging the strengths of DataFrames.jl and Tidier.jl. The presentation will discuss the challenges Stata users face in adopting open source alternatives, and demonstrate Kezdi.jl's capabilities.", "description": "Stata (registered TM) is widely used by economists for data wrangling, exploratory analysis and regressions. Its scripting language is easy to learn and provides a user friendly syntax for these tasks. There is a large and active community of Stata users, discussing problems and developing custom packages. \r\n\r\nThe cost of Stata and its performance limitations with big data encourage analysts to seek open source alternatives. Switching to popular R, Python or Julia solutions, however, requires very different syntax and, more importantly, mental models for analysts. \r\n\r\nThe aim of our package, Kezdi.jl, is to help Stata users adopt Julia as their main language for data analysis. It implements the key data wrangling, exploratory analysis and regression operations in Julia, using Stata-like syntax. Inspired by and building on DataFrames.jl and Tidier.jl, it provides a user interface familiar for Stata users, while retaining the flexibility and high performance of Julia.\r\n\r\nThe talk will illustrate the problem and the gap between existing solutions and user needs. We will showcase the Kezdi.jl implementation of the most widely used data analysis commands and discuss further development plans.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "1826858a-b207-5053-b154-ef086006bd7c", "id": 37235, "code": "JQJAP8", "public_name": "Mikl\u00f3s Koren", "avatar": "https://pretalx.com/media/avatars/koren-headshot-600_X648bHw.jpeg", "biography": "Mikl\u00f3s teaches reproducible coding practices to economists to help them maximize their scientific impact. He believes in the command line, plain text, and that every problem can be solved with the right combination of Stata, Python, Julia, git, and make. He is Professor of Economics at Central European University and the Data Editor of the Review of Economic Studies, a leading scientific journal.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/DBXQMA/", "id": 43600, "guid": "07907f45-a466-5714-98bb-cbbeee7520ad", "date": "2024-07-12T11:30:00+02:00", "start": "11:30", "logo": null, "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-43600-what-s-new-with-turing-jl-and-its-ecosystem", "title": "What's new with Turing.jl and its ecosystem", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "Turing.jl is a probabilistic programming language in Julia which have been around for a while now. Over the years it has seen a steady increase in use and adoption, with many users and contributors.\r\n\r\nMoreover, over the past few years Turing.jl has seen a lot of development in terms of new features and improvements, both in its core and in the surrounding ecosystem.\r\n\r\nAnd so in this talk I will give an overview of the current state of Turing.jl and where it is headed in the future.", "description": "Turing.jl is a probabilistic programming language in Julia, i.e. a framework that let's you do Bayesian inference for your problem at hand without too much hassle.\r\n\r\nTuring.jl is one of the older packages in Julia, with the first commits dating all the way back to when Julia was a mere v0.4. Since then it has seen a steady increase in use and adoption, with many interesting applications and contributions. And as Julia has matured and improved, so has Turing.jl.\r\n\r\nIn addition to development on Turing.jl itself, the TuringLang team has also been working on a number of other packages that feed into the Turing ecosystem with the aim of modularizing the ecosystem and making it easier to use and extend, both inside and outside of Turing.jl.\r\n\r\nAnd so, as we just passed Julia v1.10 and internal whispers of the first major release (v1.0) of Turing.jl are forming, I thought it would be a good time to give an overview of the current state of Turing.jl and what the future holds. I'll also give an overview over the full ecosystem of packages that make up the Turing ecosystem and how this can be used to hook your code into the Turing ecosystem or simply use it to build your own stuff on top of. Finally, I'll showcase some success stories of people using Turing.jl to solve real-world problems.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "4ae2c76e-e98a-5d83-a62f-df82e05ebaf9", "id": 4281, "code": "RQSHFH", "public_name": "Tor Erlend Fjelde", "avatar": "https://pretalx.com/media/avatars/me-from-aftenbladet-1-cropped_pPqPLys.jpeg", "biography": "I'm a PhD student at the Computational & Biological Learning (CBL) lab at University of Cambridge, UK.\r\n\r\nI like sampling, and also spend a lot of time working on Turing.jl and other packages in the ecosystem.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/FZR3DL/", "id": 39899, "guid": "5efb86da-3ee9-5342-9ff6-93c2c079c27c", "date": "2024-07-12T12:00:00+02:00", "start": "12:00", "logo": null, "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-39899-modelling-population-dynamics-with-julia", "title": "Modelling population dynamics with Julia", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "How does a population of interacting individuals evolve over time?\r\nThis puzzling question has been a central focus across various disciplines, ranging from ecology to economics. In this presentation, I introduce the main approaches to model population dynamics and demonstrate how they can be easily implemented and analysed using existing Julia packages.", "description": "During the presentation, I demonstrate how DynamicalSystems.jl can be used to describe and analyse the evolution of populations through differential equations and time series analysis. Additionally, I explain how to model populations using an agent-based approach with Agents.jl, a versatile and robust framework for agent-based modelling. \r\nOverall, I showcase how to apply tools from existing Julia packages to understand the complex dynamics emerging from populations composed of interacting individuals.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "769daac0-aba9-5380-b6ea-41c006ee1967", "id": 37335, "code": "GNVTYZ", "public_name": "Alejandra Ramirez", "avatar": null, "biography": "I am doctoral researcher at the Max Planck Institute for Mathematics in the Sciences and the Max Planck Institute for Evolutionary Biology in Germany. \r\nI am currently working on topics related to Dynamical Systems, Evolutionary Game Theory and Agent-Based Modelling.\r\nI am passionate about coding and to be part of the Julia community has been a wonderful experience!", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/MGRXYP/", "id": 44160, "guid": "c3cabe7a-d425-588f-a9db-669c67949112", "date": "2024-07-12T14:00:00+02:00", "start": "14:00", "logo": null, "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-44160-julia-kitchen-the-finest-julia-recipes-", "title": "Julia.Kitchen \ud83d\udc68\u200d\ud83c\udf73: The finest Julia recipes!", "subtitle": "", "track": "Community", "type": "Talk", "language": "en", "abstract": "Julia documentation is one of the sore points and usual barrier to entry for newcomers. To try to solve this we setup a website where curated examples and recipes can be contributed and shared to the community!", "description": "Julia documentation is one of the sore points and usual barrier to entry for newcomers.\r\nUsers coming from MATLAB suffer because MathWorks documentation has been curated and refined for commercial use. Python users have the advantage of python's ubiquity ... even though arguably python's documentation is as good or bad as Julia's there is *a lot* of it! \r\n\r\nWith Julia.kitchen we are trying to provide documentation, examples and most important recipes a place to exist and to share.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "466b9132-2798-5e12-8e37-a535b5f6867d", "id": 4125, "code": "QCZCDE", "public_name": "Jorge Alberto Vieyra Salas", "avatar": null, "biography": "Jorge Vieyra", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/ZH3JN3/", "id": 44388, "guid": "11dccbd6-9dbd-5d32-bf4a-e535bf81a853", "date": "2024-07-12T14:30:00+02:00", "start": "14:30", "logo": null, "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-44388-python-jl-seamlessly-blend-python-and-julia", "title": "Python.jl\u2014Seamlessly blend Python and Julia", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "Python.jl takes seamless language blending to a new level, nearly creating a superset of Python and of Julia simultaneously. As an experiment on taking \"just works\" and \"magical behavior\" to the extreme, this package is not viable for use in critical applications but still provides insight on what is possible within a Julia package. In just a few hundred loc, this package uses dual parsing, language detection, and global variable transfer to create a remarkably native dual-language experience.", "description": "This talk will include demonstrations of Python.jl's capabilities; a description of how it enables those features; demonstrations of it's failings and various tricky to reconcile differences between the two languages; and finally a discussion on what we can learn from a package like this. I hope that this talk will have impressive demos; a comedic air (as the package is of a lighthearted and exploratory nature); and provide insights into the possibilities uncovered when taking embedding DSLs into Julia to the extreme.\r\n\r\nThe source code is available for review at /~https://github.com/LilithHafner/Jokes/tree/main/Python", "recording_license": "", "do_not_record": false, "persons": [{"guid": "68e94df8-a99a-5d38-84d8-145e7ef0b643", "id": 18161, "code": "UYMQJS", "public_name": "Lilith Hafner", "avatar": "https://pretalx.com/media/avatars/circle_ndxEx8H.jpg", "biography": "I am an artist, scientist, and developer, with a specialty in sorting. Lately I've been exploring how to improve the Julia contributor experience.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/QJM9NT/", "id": 44317, "guid": "71a2972f-a489-58db-bf71-094917a3b074", "date": "2024-07-12T15:00:00+02:00", "start": "15:00", "logo": null, "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-44317-blasphemy", "title": "BLASPhemy", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "Over the past years, Enzyme.jl has developed into a popular and fast tool for automatic differentiation (AD) in Julia. Basic Linear Algebra Subroutines (BLAS) on the other hand have been around for decades, are highly optimized, and are automatically called by Julia to handle your Matrix and Vector operations. Sounds like Enzyme and BLAS would be an awesome combination, right? Except when things fall apart. In this talk, we show what went wrong and how we fixed it.", "description": "BLAS and Lapack routines have been optimized for decades, and are widely used in numerical and machine learning code throughout the Julia ecosystem. Unfortunately, Enzyme.jl can\u2019t handle their black-box implementations \u2014 so we just replaced their implementation with a generic openBLAS fallback, we hope you don\u2019t mind! And since we are already at it, we also hardcoded the number of threads for this BLAS implementation to one, since multithreading is complex and we want to protect you from race conditions. Speaking about correctness, when differentiating our fallback we noticed that gradients could be wrong, but at least only for irrelevant scalars like 0.0 or 1.0 \u2014 nobody cares about those, right? \r\n\r\nAlthough this approach \u201cworks\u201d, it feels like there must be something faster and more reliable to do here. In this talk, we showcase improvements to Enzyme\u2019s BLAS handling using LLVM\u2019s code-generation capabilities (tablegen) to generate efficient differentiation rules for low-level BLAS calls while leveraging Enzyme\u2019s ability to work within the compiler. These improvements increase BLAS AD performance by up to 64x, avoid crashes with large matrices, and allow supporting your favorite hardware-specific, multithreaded BLAS libraries. We also discuss ongoing work to improve performance even further via tricks such as memory management optimization, and the benefit of these improvements on downstream Julia applications.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "c3c33576-669e-5940-96a5-c5d79300f617", "id": 39907, "code": "KCHTLP", "public_name": "Manuel Sebastian Drehwald", "avatar": null, "biography": "I am an M.Sc. CS Student at the University of Toronto.\r\nPreviously I was an undergrad at the Karlsruhe Institute of Technology, Germany.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/83ZWZN/", "id": 43274, "guid": "1c1823ed-3e0d-591c-a22f-476202c13bd3", "date": "2024-07-12T15:30:00+02:00", "start": "15:30", "logo": null, "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-43274-rxenvironments-reactive-multi-agent-environments", "title": "RxEnvironments: Reactive multi-agent environments", "subtitle": "", "track": "AI/ML/AD", "type": "Talk", "language": "en", "abstract": "In reinforcement learning problems, interactions between an agent and its environment are simulated in discrete time steps: after a pre-determined amount of time passes, the agent and environment exchange observations and actions that are used to generate new observations for the agent, etc. RxEnvironments.jl changes this assumption and uses a Reactive Programming framework to model agent-environment interactions, allowing interactions at any time and natively supporting multi-agent environments", "description": "Introduction\r\n\r\nAt the core of Reinforcement Learning and self-organizing systems are agent-environment interactions, forming the framework for designing agents that learn by interacting with an external environment. In traditional Reinforcement Learning implementations, the agent and environment have a synchronized clock and communicate on a predetermined frequency. While this framework is convenient, it imposes a fixed temporal discretization on the communication protocol between the agent and the environment. Furthermore, because the environmental transition function usually takes the agent action into account, these environments are unable to simulate a multi-agent environment. The package RxEnvironments.jl alleviates these shortcomings by employing a reactive programming strategy to model agent-environment interactions. Users specify how agents and environments react to different stimuli and how internal states change in the absence of external stimuli. In this paradigm, the agent and environment can handle infrequent stimuli at any time and can react accordingly. Furthermore, by modeling the impact of agent-environment interactions, environments written in RxEnvironments generalize to multi-agent settings. The reactive behavior of RxEnvironments is implemented using Rocket.jl.\r\n\r\nMarkov blankets\r\n\r\nRxEnvironments is inspired by the Active Inference community. This means that every agent and environment is separated from its environment by a Markov Blanket. By implementing interactions on these Markov Blankets, we fully specify how agents and environments incorporate stimuli from their Markov Blankets and determine the data to emit to subscribers. This separates the internal states of the agent and the environment from the observable states witnessed and emitted on the Markov Blanket. \r\n\r\nThe power of reactivity\r\n\r\nReactivity is at the core of the philosophy of RxEnvironments. A consequence of this is that the transition function in reinforcement learning is decomposed into two separate functions in RxEnvironments: A state transition function that models the behavior of an environment in the absence of any stimuli, and a function that describes the influence of actions on the environment internal state. By continually calling the state transition function and calling the action incorporation function reactively whenever an action is observed, the environment is simulated even in the absence of stimuli, or whenever an agent emits multiple actions in a short period. This decomposition of the transition function also enables multi-agent environments natively, since the environment knows how to react to any incoming action. As the action is not part of the transition function over time, we can add multiple agents to the same environment and the environment will behave accordingly.\r\n\r\nContrast with traditional frameworks\r\n\r\nThe impact of splitting this transition function is apparent when compared to popular Reinforcement Learning frameworks like OpenAI Gym. In Gym, the environmental simulation can only proceed when presented with an action from an agent, fixing both the amount of agents as well as the time simulated by the transition function. By introducing reactivity and splitting the transition function, we are not limited by these constraints: the environmental simulation will continue running until any agent conducts an action, and the environment will react to this action by updating its internal state. This allows more complex agent-environment interactions with a framework closer to real-world interactions.\r\n\r\nConclusions\r\n\r\nRxEnvironments implements a different paradigm for simulating self-organizing agents in an environment than is common in reinforcement learning literature. By alleviating the constraints on the communication protocol between agents and environments we can model a wider scope of environments. A reactive programming approach keeps this paradigm computationally feasible while providing interesting byproducts, such as multi-agent environments.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "74178312-c2cd-5350-a08f-46b2bfb6db14", "id": 39105, "code": "NWH7C3", "public_name": "Wouter Nuijten", "avatar": "https://pretalx.com/media/avatars/wouter_n_rnZjOGo.png", "biography": "PhD student @ Eindhoven University of Technology", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/3E8NAS/", "id": 43520, "guid": "2439259c-ad1a-581e-85c2-b78d73e9fe0a", "date": "2024-07-12T16:00:00+02:00", "start": "16:00", "logo": null, "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-43520-julia-for-industrial-equipment-analytics-a-startup-view", "title": "Julia for Industrial Equipment Analytics: A Startup View", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "This presentation delves into how Julia enhances modeling and decision-making in a startup, particularly in monitoring industrial equipment for energy-intensive sectors. It covers key aspects like performance metrics, development speed, deployment strategies, intellectual property protection, and talent accessibility within the startup context.", "description": "This discourse addresses the principal challenge encountered in analytics services for industrial equipment \u2013 the derivation of actionable insights. While detecting alterations in the operational state is relatively straightforward, crafting insightful recommendations poses a formidable task. The foundation of such services begins with the integration of sensor data streams, necessitating the incorporation of contextual information, including sensor measurement specifics, spatial coordinates, and associations with distinct equipment types. A knowledge graph ideally represents this information. Subsequently, equipment-specific, sometimes physics-based expert models furnish anticipated data for key indicators. An event generation runner then determines the necessity of notifying relevant stakeholders, resulting in the formation of event patterns or clusters. These patterns serve as the foundation for defining cases and establishing rules for recommended actions.\r\n\r\nIn the industrial environment, requisite service components often entail discrete deployments within a private cloud infrastructure. The performance of streaming analytics is intricately linked to physics-based expert models developed for this purpose. Deployments in industrial settings are characterized by longevity, relative staticity, and a demand for unwavering reliability. In the startup milieu reliant on venture capital investments, safeguarding intellectual property assumes paramount importance.\r\n\r\nThe adoption of Julia in constructing such services offers several advantages. It facilitates swift transitions from prototyping to production deployment, ensures high performance without exhaustive optimization efforts, and empowers developers to independently code while potentially relying on less-maintained packages. The inherent (pre)-compilation features of Julia afford an added layer of intellectual property protection.\r\n\r\nHowever, despite these merits, the scarcity of Julia-familiar applicants in the talent pool is noteworthy. An individual's enthusiasm for acquiring new skills, particularly in relation to Julia, emerges as a key indicator of their suitability for a startup environment. The presenter, a co-founder of Industrial Analytics, formerly oversaw the tech team and development, providing a unique perspective on the challenges and advantages encountered in the intersection of industrial analytics, startup dynamics, and the adoption of Julia as a programming language.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "5c6291f3-d337-5f6c-b4ab-08fd3b70c067", "id": 39166, "code": "FSQ9V7", "public_name": "Richard Buessow", "avatar": "https://pretalx.com/media/avatars/RichardPicMid_wyBmReS.jpeg", "biography": "Richard, the visionary behind Industrial Analytics IA, conceived and orchestrated the formation of the startup, steering its trajectory towards pioneering an AI-IoT service seamlessly transforming sensor data into actionable insights for industrial equipment. Holding a PhD in signal analysis of structure-borne sound signals from TU Berlin, Richard brings a wealth of expertise cultivated during his decade-long tenure at MAN Energy Solutions, a prominent machinery manufacturer. In his role, he demonstrated prowess in acoustics, spearheaded research initiatives on predictive maintenance, and played a pivotal role in driving innovation management within the organization. Richard's leadership and multifaceted background uniquely position him at the forefront of industrial innovation and technology.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/XYTURN/", "id": 44420, "guid": "7a8a5f02-a2f1-5975-8ad2-6d2f3141219b", "date": "2024-07-12T16:30:00+02:00", "start": "16:30", "logo": null, "duration": "00:30", "room": "REPL (2, main stage)", "slug": "juliacon2024-44420-a-cloud-native-parallel-data-processing-application-in-julia", "title": "A cloud-native parallel data processing application in Julia", "subtitle": "", "track": "Data Science and Dynamics", "type": "Talk", "language": "en", "abstract": "We discuss the design, development, and debugging of a highly parallel cloud-native application, with a deep dive into the tooling used, while highlighting difficulties and possible improvements within Julia\u2019s ecosystem.", "description": "Julia is a great choice for researchers and developers to write expressive and performant code, and promises a smooth transition to production level systems. This talk focuses on that intersection between research and production by explaining a cloud-native application we have built in Julia for highly parallel data processing. We will explain the application's design, demonstrate Julia's strengths, show how we debugged and profiled that application, discuss some of Julia's shortcomings when building such an application, and point out avenues of future work which can address these shortcomings. \r\nTopics include:\r\n- design: AWS, containerization, parallel Julia\r\n- debugging/profiling: Tracy.jl, Intel VTune, Profiling.jl\r\n- work in progress: easier identification of performance impeding lock contention", "recording_license": "", "do_not_record": false, "persons": [{"guid": "5e9aaf83-d7a6-5864-a5c1-bcdf9c563d42", "id": 39971, "code": "KFHJJN", "public_name": "Ian Butterworth", "avatar": "https://pretalx.com/media/avatars/34b58b71fed3bca0f4ed5c73c3e080cc_jUgyppL.jpg", "biography": "CTO-Cofounder at Leuko", "answers": []}, {"guid": "2e927fcb-3ece-59bb-9057-53fd7ccbb9c1", "id": 39975, "code": "UYWRSG", "public_name": "Ryan Benasutti", "avatar": "https://pretalx.com/media/avatars/dancing_lobsters_profile_picture_xIeix7Q.jpeg", "biography": "Software engineering at Leuko.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/G3HMAP/", "id": 45601, "guid": "fe143bdc-540f-5786-abb6-ad84c3f9a2f7", "date": "2024-07-12T17:30:00+02:00", "start": "17:30", "logo": null, "duration": "01:00", "room": "REPL (2, main stage)", "slug": "juliacon2024-45601-why-i-use-julia-for-quantum-computing", "title": "Why I use Julia for Quantum Computing", "subtitle": "", "track": "Physics & Quantum Chemistry", "type": "Keynote", "language": "en", "abstract": "Quantum computing is an emerging field, with a variety of hardware platforms in development and proposed applications. We will review some of these hardware approaches and quantum algorithms in a way accessible to experts in classical computing, discussing the challenges that lie ahead for practical applications of quantum technology. Finally, we'll discuss the role Julia and its community can play in the field and opportunities to fix some of what Julia lacks in this area.", "description": "Quantum computing is an emerging field, with a variety of hardware platforms in development and proposed applications. We will review some of these hardware approaches and quantum algorithms in a way accessible to experts in classical computing, discussing the challenges that lie ahead for practical applications of quantum technology. Finally, we'll discuss the role Julia and its community can play in the field and opportunities to fix some of what Julia lacks in this area.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "920a911a-9da6-5bfb-87e3-d069010fd9da", "id": 4379, "code": "YYDPCZ", "public_name": "Katharine Hyatt", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}], "If (1.1)": [{"url": "https://pretalx.com/juliacon2024/talk/JCRRLL/", "id": 44500, "guid": "0211d81b-9c82-59ce-a1d5-1fe46ddcf12b", "date": "2024-07-12T10:10:00+02:00", "start": "10:10", "logo": null, "duration": "00:10", "room": "If (1.1)", "slug": "juliacon2024-44500-literate-package-development-using-pluto", "title": "Literate package development using Pluto", "subtitle": "", "track": "Notebooks & Graphics", "type": "Lightning talk", "language": "en", "abstract": "Notebooks like Pluto provide a great environment for enhancing code with explanations and interactive explorability. While popular with experimental research code, this is rarley found in package implementations. Since Pluto notebooks are actually plain Julia code under the hood, they can be used to implement a package while still being a descriptive place for exploration. In this talk, we learn how to use packages like PlutoDevMacros and PlutoTest to go from quick and dirty to reusable!", "description": "We have come a long way since Donald Knuth's WEB programming language for literate programming from the 1980s. His vision of interweaving code for the computer and text for humans is still popular today, however. Nowadays, notebooks like Jupyter and Pluto are the most popular tools for that purpose. While Jupyter notebooks are stored as JSON files and can therefore only be interpreted as notebooks, Pluto uses plain Julia files and annotates it with some comments to specify the notebook structure. This means that other Julia code does not have to concern itself with the Pluto-origin of that file and can just interact with it as with any other Julia file. Among many others, one benefit of this fact is that the Pluto notebook can contain the implementation of a reusable package. Such a package often naturally evolves from a script or notebook that answers one specific research question when the broader context and applicability become evident. Usually, this evolution then means starting from scratch and reimplementing the logic from the exploration. The extracted package will also miss all the deeper explanations and derivations of the implemented algorithms that were present in the notebook, making it literal in Knuth's sense. Additionally, more often than not, one will continue to experiment with the original code and, at this point, much effort is necessary to keep the code bases in sync. Therefore, transforming the explorative notebook into the package itself can be an alternative worth considering. A growing package quickly becomes impractical to maintain in a single file or notebook. Here, packages like PlutoDevMacros and PlutoLinks help because they are able to connect multiple Pluto notebooks with eachother. With PlutoTest, we can even add interactive testing for our code.\r\nIn this talk, we follow an example that starts as a typical research notebook and then showcases the evolution towards a reusable package by employing the mentioned packages step by step. The devolper experience is not yet perfect at this point, so the purpose of this talk is merely to suggest a workflow for literate package development and hint at where further improvements could be beneficial.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "06dc3b7e-8659-58d6-94c6-8c7c6dbfdbec", "id": 39267, "code": "N3GGEL", "public_name": "Andreas Kr\u00f6pelin", "avatar": null, "biography": "PhD student conducting computational structural biology at University hospital Jena, Germany", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/TVDJ3H/", "id": 44472, "guid": "f57810a8-597d-5d8d-98a0-76e5813a6c47", "date": "2024-07-12T10:20:00+02:00", "start": "10:20", "logo": null, "duration": "00:10", "room": "If (1.1)", "slug": "juliacon2024-44472-build-real-time-processes-with-pluto-s-reactivity", "title": "Build real-time processes with Pluto's reactivity", "subtitle": "", "track": "Notebooks & Graphics", "type": "Lightning talk", "language": "en", "abstract": "Pluto Notebooks are awesome for building quick experiments and dashboards. But did you know that you can also create real-time processes by reusing Pluto's reactivity?\r\n\r\nIn this talk I will demonstrate to you how powerful Pluto notebooks really are.", "description": "PlutoHooks.jl has been out for quite some time, but not many know about these hidden Pluto gems. While PlutoUI is about client-side triggers, PlutoHooks is about server-side triggers, also called self-updates. Actually the mechanism is built into Pluto itself.\r\n\r\nThis talk I will showcase a concrete example: Applying RxInfer.jl for real time probabilistic prediction of financial bitcoin data.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "f7befa64-9abd-5287-a449-dd43b54ab6d8", "id": 4390, "code": "MJPZGQ", "public_name": "Stephan Sahm", "avatar": "https://pretalx.com/media/avatars/jakobsweg-fisterra-fokus-square_aej6Nip.jpg", "biography": "On my journey to bring Pluto and Julia to the data science mass market. \r\n\r\nIf you want to convince your company to support Julia for Data Science, [cloud.jolin.io](https://cloud.jolin.io) is the perfect tool for you! Simply login with your github user at [cloud.jolin.io](https://cloud.jolin.io), a hosted Pluto service.\r\n\r\n\r\nEntrepreneur, Data Scientist/Engineer, Cloud Architect.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/MKDTV3/", "id": 44153, "guid": "93404dfb-5a01-535a-a96e-6e994fae18a7", "date": "2024-07-12T10:30:00+02:00", "start": "10:30", "logo": null, "duration": "00:30", "room": "If (1.1)", "slug": "juliacon2024-44153--pluto-jl-interactive-package-development-and-debugging", "title": "\ud83c\udf88 Pluto.jl \u2013 Interactive package development and debugging", "subtitle": "", "track": "Notebooks & Graphics", "type": "Talk", "language": "en", "abstract": "Interactive package development in Julia is possible thanks to Revise.jl, which is an amazing tool but still has a few drawback like the need to restart julia when modifying struct definitions. This talk will introduce a set of tools from the PlutoDevMacros.jl and PlutoVSCodeDebugger.jl packages which aim to improve the package development and debugging workflow using Interactive Pluto notebooks.", "description": "This talk will introduce and explain the use of the `@frompackage` macro from PlutoDevMacros which can be used to load a target local package under development inside a Pluto notebook. This macro also emulates a manual Revise-like workflow that reloads the latest package definitions within the notebook on demand. Thanks to Pluto reactivity and its capability of redefining structs, this workflow will automatically trigger re-execution of test code in the notebook when reloading a package code and will reduce the need of restarting the julia sessione when changing struct definition inside package code. A part of this talk will also be allocated to the introduction of the PlutoVSCodeDebugger.jl package which provides a streamlined way to attach a VSCode instance to a running Pluto notebook for debugging notebook code via the VSCode debugger GUI. The two packages can be used together to greatly streamlined package development and debugging inside Pluto", "recording_license": "", "do_not_record": false, "persons": [{"guid": "07c60f0f-fdeb-5b52-aeb7-16e50fa1e557", "id": 39789, "code": "XMLHEH", "public_name": "Alberto Mengali", "avatar": null, "biography": "Alberto received his Ph.D. in satellite communications at the University of Luxembourg in 2018. \r\nSince 2018 he joined the European Space Agency in the Netherlands as a Communication Systems and Technologies engineer, where he worked extensively on system level simulations regarding precoding/beamforming, 5G over satellite and digital payload optimization. \r\n\r\nAlberto's current interests are in the fields of System Level Simulations, Active Antennas, digital signal processing and the Julia programming language.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/JGT893/", "id": 43410, "guid": "4e5583fe-a8ec-5f85-bc30-1f55866ba88d", "date": "2024-07-12T11:00:00+02:00", "start": "11:00", "logo": "https://pretalx.com/media/juliacon2024/submissions/JGT893/intro_cbQtgY6.gif", "duration": "00:30", "room": "If (1.1)", "slug": "juliacon2024-43410-quarto-extensions-for-the-julia-community", "title": "Quarto Extensions for the Julia Community", "subtitle": "", "track": "Notebooks & Graphics", "type": "Talk", "language": "en", "abstract": "[Quarto](https://quarto.org/) is an open-source scientific and technical publishing system that was first presented at JuliaCon 2022. We propose new extensions and workflows that we hope will help the community embrace this promising new tool and boost developers' efforts toward effective communication and reproducibility.", "description": "What if there was a single tool, an engine that can turn your work into all kinds of different output formats? Markdown, PDF, LateX, beamer, HTML, reveal.js, ePub, MS Office, OpenOffice, entire websites, dashboards \u2026 all of that starting from the same place: a plain Markdown document blended with chunks of your favorite programming language. That is the prospect that Quarto offers.\r\n\r\n### \ud83e\udd15 Those Damn Edge Cases ...\r\n\r\nThe problem is that this is a very ambitious prospect. Even though Quarto is being continuously improved by a committed and responsive development team, there will always be edge cases that require customization. Your presentation at work, for example, might have to comply with certain styling rules. Similarly, the journal you are targeting for your next research project almost definitely has very specific editing guidelines that (if you're lucky enough) are specified in a LaTeX template. In both cases, you will need to invest some time into modifying or extending the behavior of Quarto.\r\n\r\n### \ud83d\ude91 Quarto Extensions to the Rescue\r\n\r\nThankfully - and in true open-source spirit - Quarto has come up with a way to ensure that such efforts never go in vain: [extensions](https://quarto.org/docs/extensions/). Producing and sharing extensions is so simple that it feels almost like a by-product of tailoring Quarto to your specific use case. \r\n\r\n> When I first learned about extensions, I had already created a custom template for myself to create reveal.js presentations in the iconic white-blue theme of Delft University of Technology. Releasing that [template](/~https://github.com/pat-alt/quarto-tudelft) to the public was almost as easy as creating my first Julia package (obligatory hat tip to the folks behind PkgTemplates.jl). \r\n>\r\n> \u2014 Speaker 1\r\n \r\nA few months later, Speaker 1 heard from at least a few of their colleagues that they had presented pretty HTML slides in white and blue right from their browser. \r\n\r\n### \ud83d\udd34\ud83d\udfe2\ud83d\udfe3 Julia-Themed Quarto\r\n\r\n[Julia-Themed Quarto](https://www.paltmeyer.com/quarto-julia-website/) presents a number of Quarto extensions that are specific to Julia and will be the topic of this talk. \r\n\r\n1. The [quarto-julia](/~https://github.com/pat-alt/quarto-julia) extension contributes various basic format templates for Julia-themed HTML content. It ships with standard Julia colors and fonts to provide your next presentation with a beautiful look. \r\n2. The [quarto-juliacon-proceedings](/~https://github.com/pat-alt/quarto-juliacon-proceedings) extension is a more ambitious project. This extension adds support for writing JuliaCon Proceedings papers in Quarto. It is based on the existing [JuliaCon Proceedings LaTeX template](/~https://github.com/JuliaCon/JuliaConSubmission.jl) and can be used to render standard [PDF](https://www.paltmeyer.com/quarto-juliacon-proceedings/template.pdf) while leveraging all of Quarto's functionalities such as executable code chunks. On top of that, it provides a new [HTML](https://www.paltmeyer.com/quarto-juliacon-proceedings/template.html) template that currently inherits the style of [quarto-julia](/~https://github.com/pat-alt/quarto-julia). This provides new opportunities for JuliaCon Proceedings papers to include animated and interactive content.\r\n3. Finally, the [Julia-Themed Quarto](https://www.paltmeyer.com/quarto-julia-website/) website also includes a section on the marriage of Quarto and Documenter.jl. This has not yet been turned into a fully-fledged extension but we provide guides for common workflows that facilitate this marriage. This topic will be presented by Speaker 2. \r\n\r\n### \ud83c\udfaf Goals and Limitations\r\n\r\nThe [quarto-juliacon-proceedings](/~https://github.com/pat-alt/quarto-juliacon-proceedings) is not yet officially supported and there remain some [issues](/~https://github.com/pat-alt/quarto-juliacon-proceedings/issues) that need to be addressed to make it fully compatible with the existing LaTeX template. Similarly, there is scope for improvement concerning the experience of using Quarto with Documenter.jl. We hope that through this talk we can stimulate discussion in the community and encourage others to contribute to these efforts.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "6e0a1a82-e135-5f29-993d-58e18117eea2", "id": 17382, "code": "8DGYCX", "public_name": "Patrick Altmeyer", "avatar": "https://pretalx.com/media/avatars/avatar_K2fis16.jpeg", "biography": "I\u2019m a PhD student at Delft University of Technology working on the intersection of Trustworthy Artificial Intelligence and Finance. My current research revolves around Counterfactual Explanations and Probabilistic Machine Learning. Previously, I worked as an Economist for the Bank of England.\r\n\r\nI started working with Julia at the beginning of PhD in late 2021 and have since developed and used various packages, some of which I presented at JuliaCon 2022 and 2023. These packages now have a common home called [Taija](/~https://github.com/JuliaTrustworthyAI), which stands for Trustworthy Artificial Intelligence in Julia.\r\n\r\nYou can find out more about my work on my [website](https://www.paltmeyer.com/).", "answers": []}, {"guid": "9dbf3da8-e824-5f5c-b0f0-ea7b84dd9f1e", "id": 39221, "code": "EVDCSX", "public_name": "Ronny Bergmann", "avatar": "https://pretalx.com/media/avatars/bafkreig3rw4fjqbwgzifppsx33wk6ctrkiza7b7edp44ejhsqk5xcnjtai_FG5miRi.jpg", "biography": "Usually working on Differential geometry, Numerical Methods and Optimization.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://pretalx.com/juliacon2024/talk/DBKMFD/", "id": 43245, "guid": "f4d6b0dd-14a9-54ea-aaeb-bf244a9c0560", "date": "2024-07-12T11:30:00+02:00", "start": "11:30", "logo": "https://pretalx.com/media/juliacon2024/submissions/DBKMFD/dashboard_overview_26cqoDb.png", "duration": "00:10", "room": "If (1.1)", "slug": "juliacon2024-43245-building-a-customized-application-dashboard-with-pluto-jl", "title": "Building a customized application dashboard with Pluto.jl", "subtitle": "", "track": "Notebooks & Graphics", "type": "Lightning talk", "language": "en", "abstract": "This project goes through the process of building an application dashboard with Pluto.jl. Although Pluto provides an excellent way to interact with notebooks, the result is always... well, a notebook! We exploit Pluto's flexible design and reactivity to customize it with a clear objective: make it look more like a dashboard and less like a notebook! But Julians are greedy, so we want to combine them by offering a \"secret\" developer mode for advanced users. Let's make Pluto-dashboards a thing!", "description": "## Motivation for a [Pluto.jl](https://plutojl.org/) dashboard\r\nDashboards are a great way for users to interact with a large set of information. They are lightweight, trivial to use, and appealing. On the other hand, [Pluto.jl](https://plutojl.org/) is a Julia package that is excellent for experimenting with all kinds of Julia code using notebooks. [Pluto.jl](https://plutojl.org/) notebooks integrate code and their output in a browser and provide flexible bindings with HTML, CSS, and JavaScript. In this talk we will demonstrate how these two can be combined!\r\n\r\n## Previous efforts\r\nThere has been **independent** previous work on creating reactive dashboards with [Pluto.jl](https://plutojl.org/). \r\n\r\n- [Visualization Dashboards with Pluto](https://www.youtube.com/watch?v=dP9UuEL00iM) uses [Pluto.jl](https://plutojl.org/)'s isolated cell view to only show cell outputs instead of using JavaScript scripts to move or hide certain notebook parts. \r\n- [Pluto, Dashboards and ... Excel](https://www.youtube.com/watch?v=nRmLfB-bKdc) aims to create a dashboard with adding a new mode to notebooks where one can freely move cells around.\r\n\r\nBoth projects make it easy for the user to create a dashboard, but offer less fredoom that one would have with using JavaScript scripts combined with HTML and CSS, like we do it in our approach.\r\n\r\n\r\n## Presentation content\r\n- Motivation behind the project, why is it useful for the community and why can't we just use a normal notebook?\r\n- Using [Pluto.jl](https://plutojl.org/) to add HTML elements to the notebook as well as deploy JavaScript and modify the whole notebook.\r\n- Simplifying things and wrapping functionality in an external package.\r\n- Fusing everything together and creating a [Pluto.jl](https://plutojl.org/) dashboard!\r\n- A little bit about the future of the project.\r\n\r\n## Background\r\n[Pluto.jl](https://plutojl.org/) notebooks consist of so-called cells that are filled with Julia code and output the result. The output can also be HTML code, which is appropriately rendered in the output section of that cell. The HTML code can also contain a `