Offered Tutorials
The following tutorials are offered for ACMSE 2021. Since the event is totally virtual, there is no limit on the number of participants. We will use videoconferencing technology. Hence, you are encouraged to attend them. If you register for ACMSE 2021, you will receive an email with the information for the connection before the beginning of the event.

An Introduction to MPI Parallel Programming with Python
Presenter: Xuguang Chen (Saint Martin’s University – USA)
Date: TBA
Time: TBA
Duration: 1.5 hours

Due to its important applications in many areas such as databases and data mining, real time simulation of systems, and advanced graphics, parallel computing is becoming more and more important. Two widely known parallel programming models today are message passing and shared memory. In the message-passing programming model, each task has private memories, and tasks can communicate with each other via message exchange. MPI (Message Passing Interface) is a specification that is designed by a group of researchers from academia and industry, primarily addressing the message-passing model. MPI specifies the syntax and semantics of a core of library routines useful for message-passing programs and usually implemented in C or Fortran.

Python was conceived in the late 1980s and is an interpreted, high-level and general-purpose programming language. It has not only been applied in many areas such as Machine Learning and Artificial Intelligence, Data Science and Data Visualization, Desktop GUI and Embedded Applications, but also a major programming language in CS1 and CS2 courses. In this tutorial, MPI parallel programming in Python is introduced. It firstly covers where to acquire and how to install the needed software like mpi4py and Anaconda on Windows machines and Linux machines. Then, the tutorial shows how to edit, compile, and run an MPI program in Python on a Windows machine and a Linux machine. After that, the tutorial describes some MPI routines important for parallel programming by comparing the routines in Python with the similar ones in C. Finally, the sample code used in the tutorial will be provided and other materials suitable for self-study will be mentioned.

Python, MPI (Message Passing Interface), Parallel Programming.

Covered Topics:

  • Introduction to the software needed for parallel programming in Python, especially where to get and how to install a copy of the software on a Windows or Linux machine
  • What MPI is and how to implement in Python
  • How to edit, compile, and run an MPI program in Python on a Windows or Linux machine
  • Introduction to some basic MPI routines to parallel programming.

Prerequisites for Participants:
The audience should know some basic knowledge of the programming languages, such as Python, Java, C, C#, Fortran, or C++.

5G New Radio Simulations with ns-3
Presenters: Lorenza Giupponi (CTTC – Spain) and Tom Henderson (University of Washington – USA)
Date: TBA
Time: TBA
Duration: 3 hours

This tutorial is designed as an introduction to conducting 5G New Radio simulations with ns-3, a discrete-event network simulator popular for Internet research. By the end of the session, participants should have a basic understanding of the scope of the 5G New Radio module in ns-3, and how to conduct initial example simulations that use the 5G models.

ns-3, Discrete-event Network Simulation, 5G New Radio.

Covered Topics:

  • ns-3 overview and architecture
  • ns-3 main features and models
  • Basics of 3GPP New Radio (NR) at PHY and MAC
  • Evolution across releases
  • NR model overview and architecture
  • Modeling assumptions
  • Channel model and antenna models
  • NR Radio Protocol Stack model (PHY model, HARQ, MAC models, MAC Scheduler models, RLC and PDCP protocol models, RRC model)
  • Example programs.

Prerequisites for Participants:
Background in ns-3 is preferred but not necessary. Some understanding of discrete-event network simulation, 5G NR technology, and C++ will be advantageous. Linux will be used for all examples.