Professional Documents
Culture Documents
Course Introduction
Danilo Ardagna
Politecnico di Milano
danilo.ardagna@polimi.it
Danilo Ardagna - Course Introduction 4
Instructors [A-M)
Federica Filippini
federica.filippini@polimi.it
Danilo Ardagna
danilo.ardagna@polimi.it
Bruno Guindani
bruno.guindani@polimi.it
Luca Pozzoni
lucaezio.pozzoni@polimi.it
Danilo Ardagna - Course Introduction 5
Instructors [M-Z]
Course schedule
• Monday: 8:30-10:00
• Tuesday: 8:30-10:00
• Wednesday: 8:30-10:00,
• Thursday: 11.30-13.00
Course schedule
• Lab hands-on sessions (innovative teaching):
• Lab assignment shared a couple of days before
• You will work in groups
• You can propose your own group otherwise you will be assigned to a
group by lecturers
• Dates [A,M):
• 4th October
• 25th October
• 1st December
• 14th December
• 22nd December
Danilo Ardagna - Course Introduction 8
Teaching material
Slides of the course will be published on WeBeep:
Danilo Ardagna - Course Introduction 10
Always publish
your code
otherwise no
answer will be
provided
Danilo Ardagna - Classes 11
http://en.cppreference.com/
Danilo Ardagna - Classes 12
https://stackoverflow.com
Danilo Ardagna - Course Introduction 13
Course goals
Motivations
• Parallel computing
• From high-end computing and hardware to commodity systems
• Development of faster programs
• Applications
• Require the processing of large amounts of data
• Data science, financial modelling and multimedia processing
Course content
Teaching material
C++ Primer (5th Edition), S. B. Used also in
Lippman, J. Lajoie, B. E. Moo. APSC/PACS
Addison-Wesley.
Teaching material
An introduction to parallel
programming, Peter S. Pacheco.
Morgan Kaufmann.
Exam
• Final evaluation is based on a
written exam (maximum grade 31)
Programming languages
styles/paradigms evolution
• Procedural programming
• Data abstraction
• Object-oriented programming
• Generic programming
Programming languages
styles/paradigms evolution
• Procedural programming
• Data abstraction
• Object-oriented programming
• Generic programming
• Portability is good
• High performance is good
• Functional programming, logic programming,
• Anything rule-based
that eases debugging is good
programming, constraints-based programming,
• Stability over decades is goodaspect-
oriented programming,•• …Ease of learning is good
Small is good
• Whatever helps analysis is good
• Having lots of facilities is good
https://stackoverflow.com/questions/20513071/performance-tradeoff-when-is-matlab-
better-slower-than-c-c
Danilo Ardagna - Course Introduction 26
Parallel computing
• Consider your favorite computational application
• One processor can give me results in N hours
• Why not use N processors…
…and get the results in just one hour?
Parallel computing
• Performance comes at a price: complexity
• Applications must be written specifically to take advantage of
distributed computing
• Performance characteristics of applications change
• Debugging becomes more of a challenge
Parallel computing
Parallel computing
Parallel computing
Nowadays
ImageNet wedataset:
can access computing resources in the Cloud on
https://devopedia.org/imagenet
demand (e.g., Amazon, Microsoft, Google, IBM,….)
Study Linux!
• Since November 2017, 100% of TOP500 systems are based on Linux
• Cheat sheet available on WeBeep
Danilo Ardagna - Course Introduction 32
https://www.jetbrains.com/clion/download
Danilo Ardagna - Course Introduction 33
CCS – 27 Novembre2019
Danilo Ardagna - Course Introduction 36
1. Review C language
2. Write your code
3. Check solutions only after your own
implementation
4. Participate to forums
5. Hack solutions provided on the
course website
6. Forget Matlab and R!
Danilo Ardagna - Course Introduction 37
1. Review C language
2. Write your code
3. Check solutions only after your own
implementation
4. Participate to Piazza
5. Hack solutions provided on the
course website
6. Forget Matlab and R!
Danilo Ardagna - Course Introduction 38
Participate to classes
40.00%
30.00%
course history!!
20.00% 3. Average grade 22!!!
in presence and
10.00%
0.00%
January ca ll Februa ry call June ca ll July call Sep tember call
2022 APC Statistics
Success rate
study day-by-day!!!!
180
160
140
120
100
80
60
40
20
0
January ca ll Februa ry call June ca ll July call Sep tember call
Studen ts e nrolled