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.

[4] https://www.ros.org

[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:

 

  • 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

  1. DAY1:
    Welcome and introduction to Computer Vision
    Basic concepts: Machine learning introduction Digital signals and images  
  2. DAY2:
    Image filters and features
  3. DAY3:
    Convolutional Neural Networks and their applications to image classification tasks
  4. DAY4:
    Motion and depth estimation from images and image sequences
  5. GROUP PROJECT:
    Optional activity for students willing to give an exam

References

Slides and readings will be provided.   

Some reference books:

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

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 domainsWith 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