List of courses offered by our program in 2022
Multimodal interfaces
Duration: 20 hours
Instructor(s):
Gualtiero Volpe, DIBRIS, Università degli Studi di Genova
This email address is being protected from spambots. You need JavaScript enabled to view it.
When: 17th - 21st January 2022
Where: Casa Paganini
Abstract
This class focuses on the foundational elements of multimodal interfaces, i.e., human-computer interfaces that analyze and fuse information from different sensory channels. In particular, the class addresses the auditory and visual (body movement and gesture) channels. The goal is to provide guidelines and techniques for the design and development of multimodal interfaces to be exploited in several kinds of application scenarios, e.g., cultural heritage, performing arts, entertainment, education, and rehabilitation.
Program
Introduction to multimodal interfaces; Visual channel: analysis of human full-body movement and gesture (introduction to motion capture technologies, extraction of gesture and movement features, theories and models for movement analysis), analysis of facial expression; Auditory channel: the digital audio chain, extraction of auditory features; Introduction to multimodal fusion; Hands-on using the EyesWeb XMI platform for analysis of synchronized multimodal data streams (http://eyesweb.infomus.org).
References
Camurri, A., Hashimoto, S., Ricchetti, M., Trocca, R., Suzuki, K., Volpe, G. (2000). EyesWeb – Toward Gesture and Affect Recognition in Interactive Dance and Music Systems. Computer Music Journal, 24(1): 57-69, MIT Press.
Camurri, A., Mazzarino, B., Ricchetti, M., Timmers, R., Volpe, G. (2004). Multimodal analysis of expressive gesture in music and dance performances. In A. Camurri, G. Volpe (Eds.), Gesture-based Communication in Human-Computer Interaction, LNAI 2915, 20-39, Springer Verlag.
Jaimes, A., Sebe, N. (2007). Multimodal human–computer interaction: A survey. Computer Vision and Image Understanding, 108: 116-134, Elsevier.
Varni, G., Volpe, G., Camurri A. (2010) A System for Real-Time Multimodal Analysis of Nonverbal Affective Social Interaction in User-Centric Media. IEEE Transactions on Multimedia, 12(6):576-590.
Niewiadomski, R., Kolykhalova, K., Piana, S., Alborno, P., Volpe, G., Camurri, A., (2019). Analysis of Movement Quality in Full-Body Physical Activities, ACM Transactions on Interactive Intelligent Systems.
The EyesWeb XMI platform: http://eyesweb.infomus.org
Strategic Choices: Games and Team Optimization
Duration: 20 hours
Instructors: Lucia Pusillo - University of Genoa (DIMA) - This email address is being protected from spambots. You need JavaScript enabled to view it.
Marcello Sanguineti - University of Genoa (DIBRIS) - This email address is being protected from spambots. You need JavaScript enabled to view it.
When: 7th - 11th February 2022
Where: Via Dodecaneso 35
Abstract: Game and Team Theory study strategic interactions among two or more agents, which have to take decisions in order to optimize their objectives. They have various links to disciplines such as Economics, Engineering, Computer Science, Political and Social Sciences, Biology, and Medicine. These links provide incentives for interdisciplinary research and make the role of Game and Team Theory invaluable in a variety of applications. The main goal of this course consists in providing students with the basic mathematical tools to deal with interactive problems and illustrating them via case-studies.
Program
- Non-cooperative games
- Strategic games and extended-form games
- Incomplete-information games
- Well-posedness problems for Nash equilibria
- Repeated games
- Evolutionary stable strategies
- Multiobjective games and solution concepts
- Cooperative TU-games
- Solutions for cooperative games
- Partial cooperative games
- Team optimization with stochastic information structure.
- Examples of applications in contexts such as:
- environment models;
- nonverbal communication & social interactions;
- medicine and biology;
- optimal production;
- telecommunication networks;
- transportation networks.
References
- Course notes/slides.
- A. Dontchev, T. Zolezzi. ''Well-Posed Optimization Problems''. Lecture Notes in Math., vol. 1543. Springer, 1993.
- D. Fudenberg, J. Tirole. ''Game Theory'', MIT Press, 1991
- G. Gnecco, M. Sanguineti. “Team Optimization Problems with Lipschitz Continuous Strategies”, Optimization Letters, vol. 5, pp. 333-346, 2011.
- G. Gnecco, M. Sanguineti. “New Insights into Witsenhausen’s Counterexample”, Optim. Let. 6:1425-1446, 2012.
- G. Gnecco, Y. Hadas, M. Sanguineti, “Some Properties of Transportation Network Cooperative Games". Networks 74:161–173, 2019.
- G. Gnecco, M. Sanguineti, G. Gaggero. “Suboptimal Solutions to Team Optimization Problems with Stochastic Information Structure”. SIAM J. on Optimization 22:212-243, 2012.
- Y. Hadas, G. Gnecco, M. Sanguineti. "An Approach to Transportation Network Analysis ViaTransferable Utility Games". Transportation Res. Part B: Methodological, vol. 105, pp. 120-143, 2017.
- K. Kolykhalova, G. Gnecco, M. Sanguineti, G. Volpe, A. Camurri, “Automated Analysis of the Origin of Movement: An Approach Based on Cooperative Games on Graphs". IEEE Trans. on Human-Machine Systems 50:550-560, 2020.
- H. Peters. ''Game Theory- A Multileveled Approach''. Springer, 2008.
- L. Pusillo. "Evolutionary Stable Strategies and Well Posedness Property", Appl. Math. Sc. 7:363-376, 2013.
- L. Pusillo, S. Tijs. ''E-equilibria for Multicriteria Games ''. In: R. Cressman and P. Cardaliaguet. The Annals of the Int. Society of Dynamic Games (ISDG). vol. 12, pp. 217-228, Birkhauser, 2012.
- R. Zoppoli, M. Sanguineti, G. Gnecco, T. Parisini. “Neural Approximations for Optimal Control and Decision". Springer, Communications and Control Engineering Series. London, 2020.
Computational models of visual perception
Duration: 20 hours (+ final project)
Instructor(s): Fabio Solari – DIBRIS, University of Genoa – This email address is being protected from spambots. You need JavaScript enabled to view it.
When: 14th - 18th February 2022
Where: via Dodecaneso 35
Abstract
This course introduces paradigms and methods that allow students to develop computational models of visual perception, which are based on hierarchical networks of interacting neural units, mimicking biological processing stages.
Program
- Introduction to visual perception and to the cortical dorsal and ventral streams for action and recognition tasks.
- Hierarchical networks of functional neural units. Computational models of the visual features estimation for action and recognition. Comparison among computational models and computer vision algorithms. Benchmark Datasets. How to use computational models to improve virtual and augmented reality systems to allow natural perception and interaction.
- Case studies: models and algorithms of the literature.
References
- R, Hussain, M. Chessa, F. Solari, “Mitigating Cybersickness in Virtual Reality Systems through Foveated Depth-of-Field Blur”. Sensors, 21(12), p.4006, 2021
- G. Maiello, M. Chessa, P.J. Bex, F. Solari. Near-optimal combination of disparity across a log-polar scaled visual field. PLoS Computational Biology 16(4): e1007699, 2020
- W.S. Grant, J. Tanner, L. Itti. "Biologically plausible learning in neural networks with modulatory feedback." Neural Networks 88: 32-48, 2017
- F. Solari, M. Chessa, NK Medathati, P. Kornprobst. “What can we expect from a V1-MT feedforward architecture for optical flow estimation?”. Signal Processing: Image Communication. 1;39:342-54 ,2015
- G. Maiello, M. Chessa, F. Solari, P.J. Bex. The (In) Effectiveness of Simulated Blur for Depth Perception in Naturalistic Images. PLoS one, 10(10), pp. e0140230, 2015
- A.F. Russell, S. Mihalaş, R. von der Heydt, E. Niebur, R. Etienne-Cummings. "A model of proto-object based saliency." Vision research 94: 1-15, 2014
- P. Bayerl, H. Neumann. “Disambiguating visual motion by form-motion interaction—a computational model”. International Journal of Computer Vision. 72(1):27-45, 2007
- R.S. Zemel, P. Dayan, A. Pouget. “Probabilistic interpretation of population codes”. Neural Computation, 10(2), pp.403-430, 1998
An introduction to optimization over time and its application to online machine learning and reinforcement learning
Duration: 20 hours
Instructor(s):
Giorgio Gnecco – IMT Lucca – This email address is being protected from spambots. You need JavaScript enabled to view it.
When: 28th February - 4th March 2022
Where: In one of the DIBRIS buildings either in Via Dodecaneso or in Via Opera Pia. Students’ attendance on Teams is also possible.
Abstract
The course first provides an introduction to classical methods of dynamic optimization, such as the Bellman Optimality Principle and the Pontryagin Principle. Then, it introduces to more recent topics, such as Approximate Dynamic Programming and Neural Networks for the approximate solution of dynamic optimization problems. The proofs are outlined; the details are presented only when they provide useful insights. Both discrete-time and continuous-time optimization are considered. Several applications and case-studies are described and discussed. MATLAB code will be presented for some examples.
Program
Discrete-time N-stage optimization: Dynamic Programming, LQ and LGQ problems, The Riccati Equations, The Kalman Filter, Approximate Dynamic Programming, Neural Networks for approximate solutions to discrete-time N-stage optimization problems. Continuous-time optimization: the Hamilton-Jacobi-Bellman Equation and the Pontryagin Principle. Connection between continuous-time optimization and differential games. Case-studies and examples.
References
- D. P. Bertsekas: “Dynamic Programming and Optimal Control”, vol.I, Athena Scientific, fourth edition, 2017.
- D. P. Bertsekas: “Dynamic Programming and Optimal Control”, vol. II, Athena Scientific, fourth edition, 2012.
- Lecture notes provided by the teacher.
Introduction to formal verification: an appetiser
Duration: about 20 hours
Instructor(s):
Angelo Ferrando – University of Genova - This email address is being protected from spambots. You need JavaScript enabled to view it.
When: 14th - 18th March 2022
Where: Via Dodecaneso 35, Valletta Puggia, DIBRIS
Abstract
The course provides a general introduction to static formal verification (such as Model Checking) and runtime verification. The course will not focus only on the theoretical foundations of the two approaches, but it will offer practical insights as well. For both methodologies, established tools will be presented and experimented with (through laboratories). At the end of the course, a more general overview of recent works on runtime verification will also be reported. This will help the students to have a better understanding of the newest features and challenging applications where such formal technique has been applied.
Program
- Introduction to Formal Methods and Formal Verification
- Introduction to temporal logics (LTL and CTL)
- Introduction to Model Checking
- Practical applications of Model Checking (with tools)
- Laboratory on Model Checking tools
- Introduction to Runtime Verification
- Practical applications of Runtime Verification (with tools)
- Laboratory on Runtime Verification
- Recent study and developments on Runtime Verification (predictive runtime verification, partial monitor, robotics, and so on)
References
- E. Bartocci, Y. Falcone, A. Francalanza, G. Reger, Introduction to runtime verification, in: Lectures on Runtime Verification – Introductory and Advanced Topics, 2018, pp. 1–33.
- Clarke, E.M.: Model checking. In: International Conference on Foundations of Software Technology and Theoretical Computer Science. pp. 54–56. Springer (1997)
- Angelo Ferrando, Louise A. Dennis, Rafael C. Cardoso, Michael Fisher, Davide Ancona, Viviana Mascardi.Toward a Holistic Approach to Verification and Validation of Autonomous Cognitive Systems. ACM Trans. Softw. Eng. Methodol. 30(4): 43:1-43:43 (2021)
- Angelo Ferrando, Rafael C. Cardoso, Michael Fisher, Davide Ancona, Luca Franceschini, Viviana Mascardi. ROSMonitoring: A Runtime Verification Framework for ROS. TAROS 2020: 387-399 • Andreas Bauer, Martin Leucker, Christian Schallhart: Runtime Verification for LTL and TLTL. ACM Trans. Softw. Eng. Methodol. 20(4): 14:1-14:64 (2011)
Model Predictive Control and Applications
Duration: 18 hours
Instructor: Mauro Gaggero, National Research Council of Italy (CNR), Genova - This email address is being protected from spambots. You need JavaScript enabled to view it.
When: 21st - 25th March 2022
Where: University of Genoa (classroom to be announced in Via Opera Pia) or Microsoft Teams platform
Abstract
Model predictive control (MPC) is an optimization and control paradigm that has been widely employed in the literature owing to its ability to exploit information on the future behavior of the system at hand, its capability of dealing with constraints, and the presence of many theoretical results about its properties. From various decades, MPC has been used for process control in chemical plants, and nowadays it is employed for the optimization of many other complex setups such as, for instance, power plants, mechatronic systems, logistics operations, cloud computing applications, and so on. It is still receiving on-going interest from researchers in both the industrial and academic communities. Concerning the academic world, MPC is attractive for both researchers working in the field of Control Systems and Operations Research since it combines several aspects of both disciplines. The course will start from the basic theoretic notions of MPC, together with recent developments in design and implementation. Special attention will be devoted to the computational aspects of MPC and to the existing techniques to reduce the overall required effort. An overview of receding-horizon state estimation, a topic strictly related to MPC, will be given as well. Finally, recent applications of MPC will be presented, together with details of their software implementation.
Program
- Introduction to discrete-time model predictive control
- Model predictive control with constraints
- Model predictive control and stability analysis
- Moving-horizon state estimation
- Real-time implementations of model predictive control
- Examples of applications of model predictive control
References
- M. Morari, J.H. Lee, “Model predictive control: past, present and future”, Computers and Chemical Engineering, vol. 23 pp. 667-682, 1999.
- D. Mayne, J. Rawlings, C. Rao, and P. Scokaert, “Constrained model predictive control: stability and optimality,” Automatica, vol. 36, no. 6, pp. 789–814, 2000.
- E.F. Camacho, C. Bordons, “Model Predictive Control”, Series Advanced Textbooks in Control and Signal Processing, Springer, 2004.
- L. Wang, “Model Predictive Control System Design and Implementation Using MATLAB”, Series Advances in Industrial Control, Springer, 2009.
- A. Alessandri, M. Baglietto, G. Battistelli, M. Gaggero, "Moving-horizon state estimation for nonlinear systems using neural networks," IEEE Trans. on Neural Networks, vol. 22, no. 5, pp. 768-780, 2011.
- A. Alessandri, M. Gaggero, F. Tonelli, "Min-max and predictive control for the management of distribution in supply chains," IEEE Trans. on Control Systems Technology, vol. 19, no. 5, pp. 1075-1089, 2011.
- A. Alessandri, C. Cervellera, M. Gaggero, "Nonlinear predictive control of container flows in maritime intermodal terminals," IEEE Trans. on Control Systems Technology, vol. 21, no. 4, pp. 1423-1431, 2013.
- M. Gaggero, L. Caviglione, "Predictive control for energy-aware consolidation in cloud datacenters", IEEE Trans. on Control Systems Technology, vol. 24, no. 2, pp. 461-474, 2016.
- A. Alessandri, M. Gaggero, "Fast moving horizon state estimation for discrete-time systems using single and multi iteration descent methods", IEEE Trans. on Automatic Control, vol. 62, no. 9, pp. 4499-4511, 2017.
- M. Gaggero, L. Caviglione, "Model predictive control for energy-efficient, quality-aware, and secure virtual machine placement", IEEE Trans. on Automation Science and Engineering, vol. 16, no. 1, pp. 420-432, 2019, DOI:10.1109/TASE.2018.2826723.
- M. Gaggero, D. Di Paola, A. Petitti, L. Caviglione, "When time matters: predictive mission planning in cyber-physical scenarios", IEEE Access, vol. 7, no. 1, pp. 11246-11257, 2019, DOI:10.1109/ACCESS.2019.2892310.
Programming Autonomous Robots
Duration: 18 hours (this may be extended, if needed)
Instructor(s):
Antonio Sgorbissa – University of Genova – This email address is being protected from spambots. You need JavaScript enabled to view it.
When: 4th - 8th April 2022
Where: In presence
Abstract The course introduces the basic elements of robot programming to PhD students with no background in Robotics. By following the course, the student will acquire the basic skills to develop complex software solutions to manage autonomous robots operating in different environments. The course will include a theoretical part addressing the main issues in the development of autonomous robots, as well as programming exercises in the popular framework ROS (Robot Operating System).
Program
- Architectures and software frameworks for robotics [1] (theoretical,3 hours)
- Navigation and obstacle avoidance [2] (theoretical, 3 hours)
- Perception and localization [3] (theoretical, 3 hours)
- Introduction to ROS [4] (practical, 3 hours)
- Simulating robots with ROS and Gazebo [5] (practical, 3 hours)
- Planning and control for real-robots in the real world [6] (practical, 3 hours)
References
[1] Kramer, J., Scheutz, M.Development environments for autonomous mobile robots: A survey (2007) Autonomous Robots, 22 (2), pp. 101-132.
[2] Koenig, N., Howard, A. Design and use paradigms for Gazebo, an open-source multi-robot simulator (2004) 2004 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 3, pp. 2149-2154.
[3] Hoy, M., Matveev, A.S., Savkin, A.V. Algorithms for collision-free navigation of mobile robots in complex cluttered environments: A survey (2015) Robotica, 33 (3), pp. 463-497. Cited 264 times.
[5] Cadena, C., Carlone, L., Carrillo, H., Latif, Y., Scaramuzza, D., Neira, J., Reid, I., Leonard, J.J. Past, present, and future of simultaneous localization and mapping: Toward the robust-perception age (2016) IEEE Transactions on Robotics, 32 (6), art. no. 7747236, pp. 1309-1332.
[6] Şucan, I.A., Moll, M., Kavraki, L., The open motion planning library, (2012) IEEE Robotics and Automation Magazine, 19 (4), art. no. 6377468, pp. 72-82.
Programming Complex Heterogeneous Parallel Systems: a focus on GPUs
Duration: 20 hours
Instructor(s): Antonella Galizia,
Via De Marini 16, This email address is being protected from spambots. You need JavaScript enabled to view it.
When: 11th - 15th April 2022
Where: Via Dodecaneso and IMATI – CNR
Abstract
With the end of Moore law for sequential computing architectures and the advents of multi and many cores era, managing parallelism is no longer the goal of a restricted community but becomes a need for everybody who is interested in exploiting an adequate fraction of available performance provided by widespread modern computing architectures, including desktop and mobile devices. A computer is nowadays a complex system with heterogeneous computational units including multi cores CPU and many cores accelerators such as Graphic Processing Unit (GPU) or others. The aim of the course is to provide a glance of the different aspects involved in efficient and effective programming of Complex Heterogeneous Parallel Systems (CHPS) and in particular on GPU. We will consider the complete architectural stack from hardware to applications design putting in evidence the correlation among the different levels. In particular, we will show, with practical cases, how the design and implementation of application software can exploit available computational resources through a suitable selection of programming tools, communications and domain oriented libraries, and design and implementation strategies. The overall goal and challenge is the portability and performances of software to ensure effectiveness and efficiency of target applications. This edition of the course will emphasize data oriented problems and GPGPU based solutions. At this regards the course will include a hands on part that the student may dedicate to a general case study or to a personalized case depending on specific interests.
Program
- First part: introduction to parallel processing with heterogeneous CPU + GPU systems (about 12 hours)
- Introduction to complex heterogeneous parallel systems (CHPS): from personal computer to High Performance clusters and GPUs
- A coarse grain analysis of performances and programming issues for CHPS, including: memory hierarchies and data movement; computational units and different levels-types of parallelism; communications issues
- Overview of GPGPU oriented parallel processing libraries, languages and tools. This will include CUDA, OpenACC and OpenCL insights, GPU-accelerated libraries
- Overview of CUDA advanced programming features will be provided as well as examples of high software ecosystem such HPC solutions for Python, accelerated libraries, tools for profiling and debugging code.
- Second Part (Practical experience about 8 hours)
- Designing parallel applications and practical experiences: hands on case studies selected from linear algebra, computational geometry, Monte Carlo simulation, and data science applications. Individual case study on topics proposed by students will be encouraged (8 hours)
- Wrap up
References
Tolga Soyata, “GPU Parallel Program Development Using CUDA”, Chapman and Hall/CRC
Published February 16, 2018
Slides of the course will be provided to students
Network monitoring and inspection
Duration: 20 hours
Instructor(s):
Matteo Repetto
Institute for Applied Mathematics and Information Technologies
National Research Council of Italy (CNR)
This email address is being protected from spambots. You need JavaScript enabled to view it.
When: 2nd - 6th May 2022
Where:
Abstract
The Internet is the main carrier for cyber-attacks, so it is not surprising that most detection techniques build on network flow monitoring and packet inspection. There is a huge amount of information that potentially can be gathered from the network, but deep packet inspection at line rate is extremely challenging even in hardware, especially in case of high-speed links (1 Gbps and upward).
This course will give a basic understanding of common tools for flow monitoring and packet inspection, with specific emphasis on how to extract custom information that is ever more needed to detect modern attacks. Besides, the eBPF framework provided by the Linux kernel will be introduced as a power mechanism to build efficient, custom and portable inspection and enforcement processes.
Program
- Introduction to network monitoring
- Flow monitoring: inspection tools and protocols
- Deep packet inspection: gather custom data from packets
- Acceleration frameworks for packet inspection in software
- eBPF for network visibility
References
- L. Caviglione, W. Mazurczyk, M. Repetto, A. Schaffhauser, M. Zuppelli. Kernel-level tracing for detecting stegomalware and covert channels in Linux environments. Computer Networks, Volume 191, May 2021. DOI: 10.1016/j.comnet.2021.108010
- L. Caviglione, M. Zuppelli, W. Mazurczyk, A. Shaffhauser, M. Repetto. Code Augmentation for Detecting Covert Channels Targeting the IPv6 Flow Label. 3rd International Workshop on Cyber-Security Threats, Trust and Privacy Management in Software-defined and Virtualized Infrastructures (SecSoft), July 2nd, 2021, Tokyo, Japan. DOI: 10.1109/NetSoft51509.2021.9492661.
- Carrega, L. Caviglione, M. Repetto, M. Zuppelli. Programmable Data Gathering for Detecting Stegomalware. 2nd International Workshop on Cyber-Security Threats, Trust and Privacy Management in Software-defined and Virtualized Infrastructures (SecSoft), co-located with NetSoft'2020, Ghent, Belgium (Virtual Conference), July 3rd, 2020. DOI: 10.1109/NetSoft48620.2020.9165537.
- M. Repetto, L. Caviglione, M. Zuppelli. bccstego: A Framework for Investigating Network Covert Channels. The 5th International Workshop on Criminal Use of Information Hiding (CUING 2021), August, 16th-20th, 2021. DOI: 10.1145/3465481.3470028.
Introduction to Type Theory: from foundations to practice
Duration: ~20 hours
Instructor(s):
Francesco Dagnino – DIBRIS, Università di Genova – This email address is being protected from spambots. You need JavaScript enabled to view it.
Jacopo Emmenegger – DIMA, Università di Genova – This email address is being protected from spambots. You need JavaScript enabled to view it.
When: 9th -13th May 2022
Where: DIBRIS/DIMA @ VP, Università di Genova
Abstract
Proof assistants are tools designed to write formal proofs and automatically check their correctness. They are increasingly used in many different domains, from software verification to formalized mathematics. Most popular proof assistants, such as Agda, Coq or Lean, implement a constructive logic based on a (dependent) type theory. This means that they are strongly typed functional programming languages where types and programs are seen as logical formulas and proofs, respectively, and then proof of correctness is just ensured by type-checking a program.
In the course, we will study fundamental notions and results on type theories, explaining their connection with logic, and we will experiment formal reasoning in a type theory, using Agda as a concrete system.
Program
Below we report a tentative program. It will be adapted depending on the audience.
- Introduction, Constructive reasoning
- Untyped Lambda-Calculus: terms, reduction, confluence, normalisation
- Typing a la Curry vs Typing a la Church
- Simple Types and Intuitionistic Propositional Logic
- Strong Normalisation and Consistency
- Dependent Types and Quantifiers, Identity Types and Equality
- Advanced Agda Features (Inductive Types, Universes, Record Types, …)
References
[1] J.Y. Girard, Y. Lafont, P. Taylor. Proofs and Types. Cambridge University Press, 1989.
21] M.H.B. Sorensen, P. Urzyczyn. Lectures on the Curry-Howard Isomorphism. Elsevier, 2006.
[3] B. Nordstrom, K. Petersson, J.M. Smith. Programming in Martin-löf’s type theory : an introduction. Clarendon Press, 1990.
[4] Agda (https://agda.readthedocs.io/en/v2.6.2/)
Theory and Practice of Runtime Monitoring
Duration: about 20 hours
Instructor(s): Davide Ancona - University of Genoa (DIBRIS) - This email address is being protected from spambots. You need JavaScript enabled to view it., Angelo Ferrando - University of Genoa (DIBRIS) - This email address is being protected from spambots. You need JavaScript enabled to view it.
When: 16th - 20th May 2022
Where: via Dodecaneso 35, Valletta Puggia, DIBRIS
Abstract
The course provides a general introduction to Runtime Monitoring and Verification (RM&V), and the theoretical and practical aspects of RML (Runtime Monitoring Language), a system agnostic domain specific language for RM&V. Use cases will be considered in the context of distributed and Internet of Things systems with Node.js/Jalangi2 and Node-RED and robotic systems based on ROS.
- An introduction to RM&V.
- Theory and practice of RML, a domain specific language for RM&V.
- RM&V of Node.js applications with RML and Jalangi2.
- RM&V of IoT systems with RML and Node-RED.
- RM&V of Robotic systems based on ROS.
- Hands-on labs with RML, Jalangi2, Node.js and Node-RED.
References
- Davide Ancona, Luca Franceschini, Angelo Ferrando, Viviana Mascardi. RML: Theory and practice of a domain specific language for runtime verification. Science of Computer Programming, 205:102610 (2021).
- Angelo Ferrando, Louise A. Dennis, Rafael C. Cardoso, Michael Fisher, Davide Ancona, Viviana Mascardi.Toward a Holistic Approach to Verification and Validation of Autonomous Cognitive Systems. ACM Trans. Softw. Eng. Methodol. 30(4): 43:1-43:43 (2021)
- Angelo Ferrando, Rafael C. Cardoso, Michael Fisher, Davide Ancona, Luca Franceschini, Viviana Mascardi. ROSMonitoring: A Runtime Verification Framework for ROS. TAROS 2020: 387-399
- Luca Franceschini, RML: Runtime Monitoring Language, Ph.D. thesis, DIBRIS - University of Genova, URL http://hdl.handle.net/11567/1001856, March 2020.
- Davide Ancona, Francesco Dagnino, Luca Franceschini. A formalism for specification of Java API interfaces. ISSTA/ECOOP Workshops 2018: 24-26
- Davide Ancona, Luca Franceschini, Giorgio Delzanno, Maurizio Leotta, Marina Ribaudo, Filippo Ricca. Towards Runtime Monitoring of Node.js and Its Application to the Internet of Things. ALP4IoT@iFM 2017: 27-42
- Davide Ancona, Angelo Ferrando, Viviana Mascardi. Comparing Trace Expressions and Linear Temporal Logic for Runtime Verification. Theory and Practice of Formal Methods 2016: 47-64
- Angelo Ferrando, Davide Ancona, Viviana Mascardi. Decentralizing MAS Monitoring with DecAMon. AAMAS 2017: 239-248
- Davide Ancona, Angelo Ferrando, Viviana Mascardi. Parametric Runtime Verification of Multiagent Systems. AAMAS 2017: 1457-1459
- Y. Falcone, S. Krstic, G. Reger, D. Traytel, A taxonomy for classifying runtime verification tools, in: Runtime Verification – 18th International Conference, Proceedings, RV 2018, pp. 241–262.
- E. Bartocci, Y. Falcone, A. Francalanza, G. Reger, Introduction to runtime verification, in: Lectures on Runtime Verification – Introductory and Advanced Topics, 2018, pp. 1–33.
- Yliès Falcone, Klaus Havelund, Giles Reger. A Tutorial on Runtime Verification. Engineering Dependable Software Systems 2013: 141-175
- Martin Leucker, Christian Schallhart. A brief account of runtime verification. J. Log. Algebr. Program. 78(5): 293-303 (2009)
- RML: https://rmlatdibris.github.io
- Node.js: https://nodejs.org/en
- Node-RED: https://nodered.org
- Jalangi2: https://github.com/Samsung/jalangi2
Machine Learning - A Computational Intelligence Approach
Duration: 20 hours
Instructors: Francesco Masulli e Stefano Rovetta - DIBRIS Univ. Genoa
When: 30th May – 3rd June 2022
Where:
Abstract: The Computational Intelligence is a set of methodologies for information processing inspired by natural systems that in recent decades have been successfully applied to the solution of complex problems. Among them, one can mention the Neural Networks, the Evolutionary Algorithms, the Swarm Intelligence models, the Simulated Annealing, and the Fuzzy sets and Systems. In this course we present some applications of Computational Intelligence methods to supervised and unsupervised problems of Machine Learning.
Prerequisites: Calculus, Linear Algebra, Statistics
Program: Supervised Classification, Neural Networks, Evaluation of Classifiers, Introduction to Clustering, Statistical Clustering, Fuzzy Sets, Fuzzy Clustering, Evolutionary Algorithms, Evolutionary Clustering, Applications
Final Evaluation: Project or Seminar
References:
- A. P. Engelbrecht, Computational Intelligence - An introduction, Wiley, 2007.
- C.M. Bishop, Pattern recognition and machine learning. New York: Springer, 2006A.
- I. Goodfellow, Deep Learning, The MIT Press, 2016
- Selection of journal papers
Information Hiding
Duration: 20 hours (5 half-days)
Instructor:
Luca Caviglione
Institute for Applied Mathematics and Information Technologies
National Research Council of Italy (CNR)
This email address is being protected from spambots. You need JavaScript enabled to view it.
When: 6th - 10th June 2022
Where: Via Dodecaneso if possible due to the covid-19 pandemic, otherwise via Skype or Microsoft Teams.
Abstract
Information hiding techniques are increasingly used in investigative journalism to protect the identity of sources or by malware to hide its existence and communication attempts. Therefore, understanding how information hiding can be used to empower privacy of users or endow malicious software with the ability of staying "under the radar" are essential to fully assess the modern cybersecurity panorama.
In this perspective, the course introduces the use of information hiding in modern threats and privacy-enhancing architectures with emphasis on two different research areas, specifically: i) techniques for creating network covert channels for communicating with a remote command & control facility, exfiltrate sensitive information and or enforce privacy ii) how to create and detect a covert channel implementing an abusive local path between two colluding applications to bypass the security framework of mobile devices.
To give a comprehensive overview on information hiding and steganography, the course will also cover the use of information hiding and steganographic techniques for watermarking purposes. For instance, it will showcase the main mechanisms for watermarking images, sounds and network flows for management, retrieval, metadating, authentication and copyright enforcement. The course will also discuss possible countermeasures or mitigation methodologies for facing the risks of the increasing amount of steganographic threats observed in the wild.
Program:
Module 1: Course introduction and a general view on information hiding.
Module 2: Information hiding as a cybersecurity threat: malware and colluding applications.
Module 3: Network covert channels (including air-gapped covert channels).
Module 4: Information hiding for watermarking, privacy enhancing, and metadating.
Module 5: Countermeasures (e.g., detecting obfuscated malware or removing ambiguities in protocols).
References:
[1] W. Mazurczyk, L. Caviglione, “Steganography in Modern Smartphones and Mitigation Techniques”, IEEE Communications Surveys & Tutorials, IEEE, Vol. 17, No.1, First Quarter 2015, pp. 334 - 357.
[2] W. Mazurczyk, L. Caviglione, Information Hiding as a Challenge for Malware Detection, IEEE Security & Privacy, Vol. 13, No. 2, pp. 89-93, Mar.-Apr. 2015, doi: 10.1109/MSP.2015.33.
[3] L. Caviglione, M. Podolski, W. Mazurczyk, M. Ianigro, “Covert Channels in Personal Cloud Storage Services: the case of Dropbox”, IEEE Transactions on Industrial Informatics, IEEE, Vol. 13, No. 4, pp. 1921 - 1931, August 2017.
[4] L. Caviglione, M. Gaggero, J.-F. Lalande, W. Mazurczyk, M. Urbanski, “Seeing the Unseen: Revealing Mobile Malware Hidden Communications via Energy Consumption and Artificial Intelligence”, IEEE Transactions on Information Forensics & Security, IEEE, Vol. 11, No. 4, pp. 799 – 810, April 2016.
[5] W. Mazurczyk, L. Caviglione, “Cyber Reconnaissance Techniques”, Communications of the ACM, Vol. 64, No. 3, pp. 86-95, March 2021.
[6] SteganoCC (http://steganocc.gforge.inria.fr): a set of programs helping to experiment with covert channels between two Android colluding applications.
[7] Steg-in-the-wild (https://github.com/lucacav/steg-in-the-wild): a curated list of attacks observed in the wild taking advantage of steganographic or information-hiding-capable techniques.
Theory and Practice of Virtual Reality Systems
Duration: 20 hours
Instructor(s): Manuela Chessa - University of Genoa (DIBRIS) - This email address is being protected from spambots. You need JavaScript enabled to view it.
When: 13th - 17th June 2022
Where: via Dodecaneso 35, Valletta Puggia, DIBRIS
Abstract
The course provides a general introduction to the theory and the development of Virtual Reality Systems. The course will start from some basic aspects of Virtual Reality towards the recent achievements in Mixed Reality. The course will cover the following topics.
- Introduction to Virtual Reality.
- Applications of Virtual Reality: opportunities and issues.
- Devices for Virtual Reality.
- Interaction Techniques in Virtual Reality (hand interaction, walking, …)
- Perception and Interaction in Virtual Reality.
- Introduction to Unity.
- How to build a VR application (with Unity and a commercial headset)
References
- Valentini, I., Ballestin, G., Bassano, C., Solari, F., & Chessa, M. (2020, March). Improving obstacle awareness to enhance interaction in virtual reality. In 2020 IEEE Conference on Virtual Reality and 3D User Interfaces (VR) (pp. 44-52). IEEE.
- Girau, E., Mura, F., Bazurro, S., Casadio, M., Chirico, M., Solari, F., & Chessa, M. (2019, July). A mixed reality system for the simulation of emergency and first-aid scenarios. In 2019 41st Annual International Conference of the IEEE Engineering in Medicine and Biology Society (EMBC) (pp. 5690-5695). IEEE.
- Chessa, M., Maiello, G., Klein, L. K., Paulun, V. C., & Solari, F. (2019, March). Grasping objects in immersive Virtual Reality. In 2019 IEEE Conference on Virtual Reality and 3D User Interfaces (VR) (pp. 1749-1754). IEEE.
- Chessa, M., Maiello, G., Borsari, A., & Bex, P. J. (2019). The perceptual quality of the oculus rift for immersive virtual reality. Human–computer interaction, 34(1), 51-82.
- http://www.melslater.me/
- https://wp.cs.ucl.ac.uk/anthonysteed/
- https://unity.com/learn
Machine learning crash course
Duration: about 25 hours
Instructor(s):
Rosasco Lorenzo, This email address is being protected from spambots. You need JavaScript enabled to view it.
Giovanni Alberti, This email address is being protected from spambots. You need JavaScript enabled to view it.
Simone Di Marino, This email address is being protected from spambots. You need JavaScript enabled to view it.
When: June 27th, July 1st 2022
Where: DIBRIS – Valletta Puggia, Via Dodecaneso 35
Abstract:
Machine Learning is a key to develop intelligent systems and analyze data in science and engineering. Machine Learning engines enable intelligent technologies such as Siri, Kinect or Google self driving car, to name a few. At the same time, Machine Learning methods help deciphering the information in our DNA and make sense of the flood of information gathered on the web, forming the basis of a new “Science of Data”. This course provides an introduction to the fundamental methods at the core of modern Machine Learning. It covers theoretical foundations as well as essential algorithms. Classes on theoretical and algorithmic aspects are complemented by practical lab sessions. This course is suitable for undergraduate/graduate students, as well as professionals who are starting, or need to brush up machine learning basics.
Program: statistical learning theory, model selection, empirical risk minimization, stochastic gradient descent, kernel methods, neural networks, sparse model, deciion trees, unsupervised learning.
References: http://lcsl.mit.edu/courses/ml/1718/MLNotes.pdf
IoT Security
Duration: 20 hours (5 half-days)
Instructors(s): Alessio Merlo – University of Genova This email address is being protected from spambots. You need JavaScript enabled to view it.
Luca Verderame – University of Genova This email address is being protected from spambots. You need JavaScript enabled to view it.
When: 4th July- 8th July 2022
Where: online course via Teams or in presence at DIBRIS – Valletta Puggia, Via Dodecaneso 35
Abstract: The course provides the basics of the Internet of Things (IoT), with a specific focus on cybersecurity aspects. More specifically, the course introduces the IoT concept, analyzing its main paradigms and architectures, as well as providing an overview of the most common use cases and the most used operating systems and technologies. Then, the course addresses the problems and security challenges of the IoT world, highlighting the new attack surfaces and the methodologies and techniques for the vulnerability analysis and penetration testing of the devices. Practicals will focus on the automatic analysis of IoT applications and firmware.
Program:
- Basics of IoT: paradigms and main architectures, IoT ecosystems, some use-cases
- (In)security of IoT: examples of attacks, understanding the attack surface, the OWASP IoT Top 10 vulnerabilities, Security analysis of Firmware, Software, and Applications
- VA/PT of IoT: basics on methodologies and tools, focus on the Firmware Security Testing Methodology (FSTM)
- Study and analysis of an actual open-source IoT OS: RIOT
- Practicals on FSTM, RIOT and VA/PT on IoT ecosystems
References:
- OWASP Firmware Security Testing Methodology: https://scriptingxss.gitbook.io/firmware-security-testing-methodology/
- OWASP Top 10 IoT vulnerabilities: https://owasp.org/www-project-internet-of-things/
- RIOT: The friendly Operating System for the Internet of Things https://www.riot-os.org/
- BACCELLI, Emmanuel, et al. RIOT OS: Towards an OS for the Internet of Things. IEEE conference on computer communications workshops (INFOCOM WKSHPS). IEEE, 2013.
- RIZVI, Syed, et al. Identifying the Attack Surface for IoT Network. Internet of Things, 2020, 100162.
Deep Learning: a hands-on introduction
Duration: 20 hours
Instructor(s):
Nicoletta Noceti and Francesca Odone
MaLGa-DIBRIS, Università degli Studi di Genova
{nicoletta.noceti, francesca.odone}@unige.it
When: 12th - 20th July 2022
Where: DIBRIS-UNIGE Via Dodecaneso 35, Genova (online attendance will be possible)
Abstract
Deep Learning (DL) is a branch of Machine Learning that has recently achieved astonishing results in a number of different domains. This course will provide a hands-on introduction to DL, starting from its foundations and discussing the various types of deep architectures and tools currently available. The theoretical classes will be coupled with hands-on activities in lab (in Python using Keras), which will constitute an integral part of the course, giving the possibility of practicing deep learning with examples from real-world applications, with particular focus on visual data. Besides well established approaches, the course will also highlight current trends, open problems and potential future lines of research.
Although the DL course can be taken independently, this year it will be held in synergy with the “Computer Vision Crash Course” (CVCC). Computer Vision is indeed one of the most classical and effective applications of DL in the real world. Contributions from the CVCC course will constitute a complementary deepening on basic principles of computer vision and visual perception in artificial agents, but also providing a guided tour through the use of deep learning for computer vision problems.
Core DL Program (for those attending the DL course only)
DAY 1
Welcome and introduction to DL: from single layer perceptrons to deep neural networks
Warm-up lab: NNs on images
DAY 2
Convolutional Neural Networks
Lab: CNNs
DAY 3
Autoencoders and GANs
Lab: GANs
DAY 4
Dealing with sequences: from Recurrent Neural Networks to Transformers
Lab: Transfomers
DAY 5
GROUP PROJECT:
Optional activity for students willing to give an exam
Integrated DL and CVCC program
References
- Goodfellow, Y. Bengio and A. Courville, Deep Learning book, MIT Press, 2016.
- Francois Chollet. Deep Learning with Python, Manning Pub., 2017
- Slides, notebooks, and a list of bibliographical references and additional material will be provided to attendants. All the course material is in English.
Computer Vision Crash Course
Duration: 20 hours
Instructor(s):
Francesca Odone and Nicoletta Noceti
MaLGa & DIBRIS
When: 12th - 20th July 2022
Where: DIBRIS-UNIGE Via Dodecaneso 35, Genova (online attendance will be possible)
Abstract
Visual perception, as a key element of Artificial Intelligence, allows us to build smart systems sensitive to surrounding environments, interactive robots, video-cameras with real time algorithms running on board. With similar algorithms, our smart-phones can log us in by recognizing our face, read text automatically, improve the quality of the photos we shoot. At the core of these applications are computer vision models, often boosted by machine learning algorithms.
This crash course is conceived as a complement to the “Deep Learning: Hands on introduction” course (henceforth DL) although it can be taken independently.
It covers the basic principles of computer vision and visual perception in artificial agents, including theoretical classes, application examples, hand-on activities.
Within CVCC, we present elements of classical computer vision (introduction to image processing, feature detection, depth estimation, motion analysis).
At the same time, by borrowing from DL, we also present deep learning approaches to computer vision problems such as image classification, detection and semantic segmentation.
Core CVCC Program
- DAY1:
Welcome and introduction to Computer Vision
Basic concepts: Machine learning introduction Digital signals and images - DAY2:
Image filters and features - DAY3:
Convolutional Neural Networks and their applications to image classification tasks - DAY4:
Motion and depth estimation from images and image sequences - GROUP PROJECT:
Optional activity for students willing to give an exam
References
Slides and readings will be provided.
Some reference books:
- E. Trucco, A. Verri Introductory Techniques for 3-D Computer Vision Prenctice Hall 1998
- R. Szeliski Computer Vision: Algorithms and Applications https://szeliski.org/Book/
- I. Goodfellow, Y. Bengio, A. Courville Deep Learning https://www.deeplearningbook.org/
CVCC is a complement to DL course, this complementarity can be better appreciated having a look at their time table
Theory and Practice of Learning from Data
Duration: 20 hours
Instructor: Luca Oneto – DIBRIS – UNIGE – This email address is being protected from spambots. You need JavaScript enabled to view it.
When: 18th July - 22nd July 2022 from 8:00 to 12:00 CEST
Where: TBD – more details at https://www.lucaoneto.com/teaching/tpld
Abstract: This course aims at providing an introductory and unifying view of information extraction and model building from data, as addressed by many research fields like DataMining, Statistics, Computational Intelligence, Machine Learning, and PatternRecognition. The course will present an overview of the theoretical background of learning from data, including the most used algorithms in the field, as well as practical applications.
Program
- Inference: induction, deduction, and abduction
- Statistical inference
- Machine Learning
- Deep Learning
- Model selection and error estimation
- Implementation and Applications
References
- C. C. Aggarwal "Data Mining - The textbook" 2015
- T. Hastie, R.Tibshirani, J.Friedman "The Elements of Statistical Learning: Data Mining, Inference, and Prediction" 2009.
- S. Shalev-Shwartz, S. Ben-David "Understanding machine learning: From theory to algorithms" 2014
- I. Goodfellow, Y. Bengio, A. Courville "Deep learning" 2016
- L. Oneto "Model Selection and Error Estimation in a Nutshell" 2020
Mobile Security
Duration: 20 hours (5 half-days)
Instructors(s): Alessio Merlo – University of Genova This email address is being protected from spambots. You need JavaScript enabled to view it.
Luca Verderame – University of Genova This email address is being protected from spambots. You need JavaScript enabled to view it.
When: 25th July - 29th July 2022
Where: online course via Teams or in presence at DIBRIS – Valletta Puggia, Via Dodecaneso 35
Abstract: The course provides an overview of the main topics related to the security of mobile devices and applications. The course offers an insight into the leading mobile operating systems (i.e., Android and iOS) and their security issues. Moreover, the course provides a discussion on emerging mobile security technologies (e.g., Host-Based Card Emulation, and Trusted Execution Environment), security threats, and possible countermeasures. The second part of the course will cover the security of Mobile Applications, with a particular focus of state-of-the-art frameworks and methodologies for the vulnerability assessment of Android applications. Finally, the course will provide specific hands-on sessions with tools and techniques for the vulnerability assessment of Android applications.
Program:
- Introduction to mobile devices: history, features, and evolution;
- Architecture and security features of the principal mobile OSes (Android, iOS);
- Emerging mobile security technologies, security threats, and countermeasures;
- OWASP for Mobile Application Security Analysis;
- Reverse Engineering of Android Apps and Reversing Countermeasures;
- Static and Dynamic analysis of Android Apps.
During the hands-on sessions, students will get acquainted with a number of static and dynamic analysis tools, including
- ObfuscAPK - https://github.com/ClaudiuGeorgiu/Obfuscapk
- Apktool - https://ibotpeaches.github.io/Apktool/
- Jadx - https://github.com/skylot/jadx
- Inspeckage - https://github.com/ac-pm/Inspeckage
- Approver - https://approver.talos-sec.com
- Charles Proxy - https://www.charlesproxy.com
References:
- Davide Caputo, Luca Verderame, Simone Aonzo, Alessio Merlo. “Droids in Disarray: Detecting Frame Confusion in Hybrid Android App.” DBSec 2019
- Simone Aonzo and Alessio Merlo and Giulio Tavella and Yanick Fratantonio. Phishing Attacks on Modern Android. CCS 2018.
- Nikolay Elenkov. Android Security Internals: An In-Depth Guide to Android’s Security Architecture. 2014
- Mayrhofer, R., Stoep, J. V., Brubaker, C., & Kralevich, N. The Android Platform Security Model. arXiv 2019
- OWASP Mobile Security Project. Mobile Security Testing Guide (MSTG) and Mobile Application Security Verification Standard (MASVS) https://www.owasp.org/index.php/OWASP_Mobile_Security_Project
Distributed optimization and multi decision making
Duration: 20 hours
Instructors: Giulio Ferro– University of Genova – This email address is being protected from spambots. You need JavaScript enabled to view it.; Michela Robba– University of Genova – This email address is being protected from spambots. You need JavaScript enabled to view it.
The course will include the participation of personnel from MIT (Massachusetts Institute of Technology) for research activities related to the course.
When: July 2021
Where: Teams and in presence (depending on the covid situation)
Abstract
In recent years, there is a growing attention on distributed optimization due to recent interest in large scale optimization problems application, like machine learning smart grids and general networked systems, involving multiple decision makers at the same time. In this context, distributed optimization techniques are a very promising solution to afford this type of decision problems, since allow the fast solution of large-scale optimization problems by keeping private the information exchange and allowing plug and play capabilities. The course will present the basics of distributed optimization and multi decision making starting from the basic concepts of constrained optimization, up to developing and implementing state of the art distributed optimization algorithms (such as dual decomposition and ADMM). From an application point of view, the course will be mainly focused on examples related to energy management (smart grids, energy communities, electric vehicles). In some cases, the examples will regard coupled transportation and energy networks. Finally, a seminar will be held on recent developments in distributed optimization (with application to smart grids) by experts from the Massachusetts Institute of Technology (MIT), with the instructors have been working for years.
Program
- Introduction to constrained optimization and applications in the energy and transportation sector (electric vehicles)
- Multi decision making with multilevel programming
- Distributed optimization algorithms: dual decomposition and alternating direction method of multipliers (ADMM).
- Seminar on recent developments on distributed optimization by MIT experts.
- Application to real case studies: smart grids, energy communities, electric vehicles.
References
- Romvary J, Ferro G, Haider R, Annaswamy A. A Proximal Atomic Coordination Algorithm for Distributed Optimization. IEEE Trans Automat Contr. 2021:1-1. doi:10.1109/tac.2021.3053907
- Ferro G, Robba M, D’Achiardi D, Haider R, Annaswamy A. A distributed approach to the Optimal Power Flow problem for unbalanced and mesh networks. IFAC-PapersOnLine. 2020;53(2):13287-13292. doi:10.1016/j.ifacol.2020.12.159
- Ferro G, Minciardi R, Parodi L, Robba M, Rossi M. A multi-objective and multi-decision maker approach for the balancing market in distribution grids in presence of aggregators. 2020 7th International Conference on Control, Decision and Information Technologies (CoDIT). 2020. doi:10.1109/codit49905.2020.9263784
- R Nudell1, M. Brignone, M. Robba, A. Bonfiglio, G. Ferro, F. Delfino, and A. M. Annaswamy. Distributed Control for Polygeneration Microgrids: A Dynamic Market Mechanism Approach Control Eng Pract.(2022)
- Boyd, N. Parikh, E. Chu, B. Peleato, J. Eckstein, et al., “Distributed optimization and statistical learning via the alternating direction method of multipliers,” Foundations and Trends in Machine learning, vol. 3, no. 1, pp. 1–122, 2011.
Introduction to High Performance Computing
Duration: 20 hours
Instructor: Daniele D’Agostino – DIBRIS Unige
When: July-September 2022
Where: TEAMS and/or Via Dodecaneso
Abstract For most scientists the abstract fact of the existence of an algorithm solving a problem is enough, while its implementation so that the available computational resources are efficiently used is mostly disregarded. But with the end of Moore law for sequential computing architectures and the advents of multi and many cores era, managing parallelism is no longer the goal of a restricted ICT community, it becomes a need for everybody who is interested in exploiting an adequate fraction of available performance provided by widespread modern computing architectures. The aim of the course is to provide a glance of the different aspects involved in efficient and effective programming of current heterogeneous computing systems equipped with manycore x86 architectures and accelerators, in particular graphics cards (GPUs). Therefore it conveys the required knowledge to develop a thorough understanding of the interactions between software and hardware at the core, socket, node and cluster level. In particular we will see, with practical cases, how the design and implementation of programs can exploit available computational resources through a suitable selection of programming paradigms, compiling and profiling tools. The course includes a hands on part that the student may dedicate to a general case study or to a personalized case depending on specific interests.
The programming language will be C/C++. The translation in Fortran is straightforward.
Program
- Introduction to complex heterogeneous parallel systems: from workstations to High Performance clusters and supercomputers.
- The von Neumann architecture then versus now, features and bottlenecks.
- Introduction to parallel architectures.
o Single Instruction Multiple Data (SIMD)
o Single Program Multiple Data (SPMD)
- The roofline performance model.
o Profiling and performance analysis
- The compiler, one of the most important software tools for HPC.
o Intel oneAPI
o Nvidia HPC SDK
- Optimal use of parallel resources
o Parallel programming for x86 nodes: OpenMP and MPI
o Parallel programming for GPUs: openACC and CUDA
o Parallel programming for HPC systems: MPI+X
- Designing parallel applications and practical experiences.
References
- Slides of the course will be provided to students
Survey on Large Scale Data Analysis using Parallel and Distributed Computing
Duration: 20 hours
Instructors: Giorgio Delzanno, Daniele D’Agostino – DIBRIS Unige
When: September 2022
Where: TEAMS and/or Via Dodecaneso
Abstract Large scale data analysis is the process of applying data analysis techniques to a large amount of data, typically in big data repositories via specialized algorithms, systems and architectures aimed at reviewing, analyzing and presenting information. In this setting the course is aimed at providing an overview of parallel and distributed architectures for large scale analytics covering architectures, programming languages, and application libraries and domains. With respect to similar PhD and MsC courses the focus is on higher level languages with respect to C/C++, mainly Python. Today in fact HPC and Big data are converging in many applicative fields, therefore Python and its ecosystem are becoming a first-class language also in HPC. Topics include theoretical aspects derived from the HPC and LSC courses of our master together with practical aspects as linear algebra and array computing with NumPy, interactive and parallel software development with IPython, performance and painless low-level C linking with Cython, and the friendliest performant interfaces to MPI and CUDA available.
Program
- Introduction to complex heterogeneous parallel systems: from workstations to High Performance clusters and supercomputers.
- The von Neumann architecture then versus now, features and bottlenecks.
- Introduction to parallel architectures.
o Single Instruction Multiple Data (SIMD)
o Single Program Multiple Data (SPMD)
- Large scale analytics architectures: Spark and Dask
- API and libraries
o Distributed Computing: PySpark/MLib, Dask, Spark.jl, Kafka Stream/Connect
o Computing on GPUs: Numba and PyCuda
o Parallel computing: iPyParallel, mpi4py
References
- Slides of the course will be provided to students