This course is aimed at students wishing to learn how to use the scientific computing platforms at the Paris Saclay Computing Center (https://mesocentre.universite-paris-saclay.fr/). We will review the different existing computing architectures (cloud, supercomputer). We will then look at how to access the VirtualData cloud and the Ruche HPC computer, and how to use the resources effectively...
First, we'll take a closer look at the basic mechanisms of the Python language, beyond what can be guessed by blindly copying and pasting examples, in order to avoid the most common traps and pitfalls. Then, we'll debate the interactions with Linux. In particular, we will talk about :
- variables semantic, duck typing,
- automatic memory management,
- builtin types and collections,
-...
When using numbers of type float or double, are you aware that 0.1+0.2 does not equal 0.3 ? Let’s review the theory behind such pitfalls, and discuss some case studies :
- the quadratic equation in kinematics calculations
- variance calculations in data analysis
- calculations with complex numbers
- accurate summation in large Monte-Carlo calculations
- precision in matrix and geometry...
Discovery of software engineering tools and methodologies to write more tested,
documented code that is easier to understand and maintain.
- static analysis
- tests
- documentation
The examples will be based on the C++ and Python programming languages.
Prerequisites : some knowledge of C++ or Python.
We will describe the main concepts of Machine Learning (ML) and give some clues to address a problem of ML. In particular, we will talk about :
- the concepts of AI/Machine Learning/Deep Learning,
- supervised/unsupervised learning,
- the preprocessing of the data,
- the general principle of the algorithm,
- the main pitfalls,
- the evaluation of the training and the outcomes.
Some...
Most computer programs are inefficient and could serve the same purpose while using 10-1000x less resources (time, energy, memory…). However, achieving this result requires know-how that is not part of the typical programming curriculum. In this course, you will learn a general methodology to make any program use computing resources more efficiently:
1. Safety first
2. Set a useful...
First contact with C++, in its most used version in new physics projects : aka C++17.
The course is targeted at people who have programming experience, especially with Python. In particular, we will talk about :
- builtin types, variables, functions,
- passing arguments by value and by reference,
- type inference and templates,
- returning a tuple of values,
- std::vector vs...
Second part of "Make Your Code More Robust". See the contribution "Make Your Code More Robust 1/2".
Research is based on reproducibility and an incremental improvement process. Open Science movement has been developed to facilitate this work and relies on 3 legs: open access to publications, open data and libre software.
Topics :
- open data
- their organization, the conditions of their publication and their reuse
- their valorization
- Free/libre software
- the software licences,
-...
Second part of "Make Your Code More Efficient". See the contribution "Make Your Code More Efficient 1/2".