| UNIVERSITY | University of Patras | ||||
|---|---|---|---|---|---|
| SCHOOL | Engineering | ||||
| DEPARTMENT | Computer Engineering and Informatics | ||||
| LEVEL OF STUDIES | Undergraduate | ||||
| COURSE CODE | CEID_NE4128 | SEMESTER | Fall | ||
| COURSE TITLE | Parallel Algorithms | ||||
| INDEPENDENT TEACHING ACTIVITIES | WEEKLY TEACHING HOURS | CREDITS | |||
Lectures | 2 | 3 | |||
Problem solving sessions | 2 | ||||
Lab sessions | 2 | ||||
| COURSE TYPE | Special background | ||||
| PREREQUISITE COURSES | - | ||||
| LANGUAGE OF INSTRUCTION AND EXAMINATIONS | greek | ||||
| IS THE COURSE OFFERED TO ERASMUS STUDENTS | No | ||||
| COURSE WEBSITE (URL) | goo.gl/juNBnt | ||||
Learning outcomesThe course learning outcomes, specific knowledge, skills and competences of an appropriate level, which the students will acquire with the successful completion of the course are described. |
|---|
Parallel computation involves multiple processors (or computers) working together for a common problem. Each processor works for part of the problem assigned to it. Processors can exchange information. sequential compuatation (i.e., when there is a single processor), on the other hand, follows the Von Neumann's stored program model. Several processes in nature and everyday life involve parallelism, for example, weather phenomena, movement of tectonic plates, formation of galaxies, road traffic, car and aircraft construction, etc. Parallel computation is used in many areas of research and development (such as Computer Science , Mathematics, Electrical Engineering, Mechanics, Physics, Life Sciences, Biotechnology, Genetics, Chemistry, Geology, Seismology, etc.). Specifically, in Computer Science, parallel computing is used for tasks such as data mining, Web search, image processing, virtual reality, monetary and financial modeling, organization management, video and multimedia network technologies, collaborative work environments. Parallel computation is used for overcoming the constraints imposed by sequential computation, and in particular for saving time and money, solving problems of large size, ensuring simultaneous access to information / services as well as for exploiting non-local information (e.g. , SETI @ home). In the context of this course, the concept, application and efficiency of parallelism in the design and execution of computational tasks (algorithms) are addressed.Problems and corresponding algorithms studied include computational tasks performed within a chip or a microprocessor such as sorting, counting, addition, multiplication, prefix counting, convolution, etc, computational tasks performed in a computer system, such as sorting, routing, etc., and other computational tasks related to communication in data networks, resource allocation, etc. Various models of fixed-connection networks, such as linear arrays, meshes, trees, hypercubes, butterflies, are studied. The proposed parallel algorithms are analyzed in terms of their speed-up against corresponding sequential algorithms, as well as in terms of their efficiency and work, i.e., how uniformly available resources are used. Asymptotic analysis is used to evaluate performance by providing upper and lower bounds. The analysis is mainly theoretical but can also be based on experimentation.
Students who regularly participate in course activities and successfully complete the course:
In particular, students who regularly participate in course activities and successfully complete the course:
are familiar with computational thinking |
General competencesTaking into consideration the general competences that the degree-holder must acquire (as these appear in the Diploma Supplement and appear below), at which of the following does the course aim? |
|---|
- |
Parallel computation involves multiple processors (or computers) working together for a common problem. Each processor works for part of the problem assigned to it. Processors can exchange information. sequential compuatation (i.e., when there is a single processor), on the other hand, follows the Von Neumann's stored program model. Several processes in nature and everyday life involve parallelism, for example, weather phenomena, movement of tectonic plates, formation of galaxies, road traffic, car and aircraft construction, etc. Parallel computation is used in many areas of research and development (such as Computer Science , Mathematics, Electrical Engineering, Mechanics, Physics, Life Sciences, Biotechnology, Genetics, Chemistry, Geology, Seismology, etc.). Specifically, in Computer Science, parallel computing is used for tasks such as data mining, Web search, image processing, virtual reality, monetary and financial modeling, organization management, video and multimedia network technologies, collaborative work environments. Parallel computation is used for overcoming the constraints imposed by sequential computation, and in particular for saving time and money, solving problems of large size, ensuring simultaneous access to information / services as well as for exploiting non-local information (e.g. , SETI @ home). In the context of this course, the concept, application and efficiency of parallelism in the design and execution of computational tasks (algorithms) are addressed.Problems and corresponding algorithms studied include computational tasks performed within a chip or a microprocessor such as sorting, counting, addition, multiplication, prefix counting, convolution, etc, computational tasks performed in a computer system, such as sorting, routing, etc., and other computational tasks related to communication in data networks, resource allocation, etc. Various models of fixed-connection networks, such as linear arrays, meshes, trees, hypercubes, butterflies, are studied. The proposed parallel algorithms are analyzed in terms of their speed-up against corresponding sequential algorithms, as well as in terms of their efficiency and work, i.e., how uniformly available resources are used. Asymptotic analysis is used to evaluate performance by providing upper and lower bounds. The analysis is mainly theoretical but can also be based on experimentation. Lectures, problem solving and lab sessions are scheduled as follows:
Properties of the fixed-connection network model
Integer arithmetic
Sorting
Packet routing
|
| DELIVERY | - | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| USE OF INFORMATION AND COMMUNICATIONS TECHNOLOGY | - | ||||||||||||
| TEACHING METHODS The manner and methods of teaching are described in detail. The student's study hours for each learning activity are given as well as the hours of nondirected study according to the principles of the ECTS |
| ||||||||||||
| STUDENT PERFORMANCE EVALUATION Description of the evaluation procedure Language of evaluation, methods of evaluation, summative or conclusive, multiple choice questionnaires, short-answer questions, open-ended questions, problem solving, written work, essay/report, oral examination, public presentation, laboratory work, clinical examination of patient, art interpretation, other. Specifically-defined evaluation criteria are given, and if and where they are accessible to students. | Student perfWritten examination Optional projects (can contribute at most 1 to the final score):
|
- Suggested bibliography: INTRODUCTION TO PARALLEL ALGORITHMS AND ARCHITECTURES, F. T. Leighton (available online via the Library of the University of Patras at the following url https://find.library.upatras.gr/Record/88059 and https://ebookcentral.proquest.com/lib/upatras/detail.action?docID=2050837) - Related academic journals: Theoretical Computer Science, Elsevier Theory of Computing Systems, Springer |