高级语言程序设计课程大纲

发布 2020-01-02 12:18:28 阅读 2372

《并行程序设计》课程大纲。

本课程目标在于使学生了解并行计算的基本概念与原理,培养学生的并行思维,学会在多核多cpu硬件平台上编写简单的并行程序,并初步具备解决实际问题的能力。通过本课程的学习,学生应该能了解当前流行的并行计算机的体系结构,多核芯片以及异构多核芯片的演变过程;熟悉进程间通信的基本技术,包括管道、消息队列、信号量、共享内存;掌握线程的基本概念,线程安全性,线程的创建、终止、同步与控制;了解mpi并行程序结构,掌握mpi基本通信原语,包括点对点通信、集合通信;掌握几种重要的并行设计模式,包括数据并行、流水线并行、工作池模式和主从模式;掌握并行程序的性能分析方法。学完本课程,学生具备分析和解决易并行问题的能力,能够在一周时间内,编写并调试通过、能正确运行、具备可扩展性的、200行有效**以内的并行程序。

随着多核体系结构的出现和发展,使得并行计算科学的硬件基础设施发生了很大的变化,如果把并行硬件基础设施看成是“经济基础”,则其相应的上层并行软件就可以视为“上层建筑”。本课程的主要目的是让学生了解并行计算的概念和原理,学习并行编程技术,培养学生并行程序设计思维,使其能够在多核体系结构上进行高效的并行程序设计,以充分利用多核所提供的硬件并行性。

第1讲、 并行程序设计基础(2学时)

目标:要求学生了解并行的基本概念,学习并行程序设计的必要性;了解共享存储与分布式存储并行计算机架构;了解多核与异构多核处理器架构;并行计算的应用范围;并行计算技术概览。

主要内容:1.1 什么是并行计算。

1.2 为什么要学习并行程序设计。

1.3 并行与并发。

1.4 并行与分布式。

1.5 并行计算的应用。

1.6 并行层次与分类。

1.7 并行计算机架构及分类。

1.8 并行计算的发展趋势与挑战。

重点:并行计算的概念、多核处理器的特点、集群体系结构、并行计算机内存访问模型、并行的层次与分类。

难点:多核处理器的历史与架构、多进程、线程概念、操作系统对并行计算的支持、并行编程环境。

第2讲、 多进程程序设计(4个学时)

目标:要求学生了解多进程的概念与特点,熟悉多进程程序开发技术,了解进程间通信的必要性,熟悉常用的进程间通信技术。本章内容重在了解,不要求学生必须掌握。

主要内容:2.1 进程的基本概念与特点。

2.2 进程的控制。

2.3 信号。

2.4 进程间通信。

重点:多进程的概念与特点、多进程程序设计。

难点:管道、消息队列、信号量、记录锁。

第3讲、 多线程程序设计(6学时)

目标:要求学生掌握线程的概念,学会在linux平台下编写多线程程序;掌握线程的创建、终止、控制与同步;掌握线程的调试方法。

主要内容:3.1 线程基础。

3.2 线程的基本操作。

3.3 多线程的共享变量。

3.4 线程同步机制。

3.5 多线程信号处理。

3.6 并发常见问题。

重点:线程基础、线程的创建与终止、线程同步、线程安全性。

难点:线程同步、线程安全性。

第4讲、 mpi程序设计(4学时)

目标: 要求学生掌握mpi程序的结构,了解mpi的组和通信子的概念,掌握mpi常用通信原语。

主要内容:4.1 认识mpi

4.1.1 什么是mpi

4.1.2 为什么要用mpi

4.2 mpi编程基础。

4.3 mpi集合通信。

4.4 mpi与pthread混合编程。

重点:mpi的程序结构、点对点通信、集合通信。

难点:mpi的执行模型、集合通信、mpi与pthreads混合编程。

第5讲、 并行程序性能分析方法(4学时)

目标:要求学生能够了解影响并行程序性能的因素;掌握衡量并行程序优劣的指标,这些指标包括加速比、可扩展性、执行时间;掌握如何计算这些指标,并根据这些指标分析并行程序性能瓶颈。

主要内容:5.1 实例:通过性能分析改进程序性能。

5.2 并行程序性能度量。

5.3 影响并行程序性能的因素。

5.4 并行程序的可扩展性。

5.5 改进并行程序性能的几种策略。

重点:性能度量。

难点:影响并行程序性能的因素、性能优化方法。

第6讲、 并行算法设计与并行模式(4学时)

目标:要求学生了解并行算法设计的常用方法和常见的并行模式,并能用这些并行模式解决实际问题。

主要内容:6.1 并行算法设计基本方法。

6.2 常用的并行模式。

6.2.1 数据并行。

6.2.2 任务并行。

6.2.3 工作池模式。

6.2.4 主-从模式。

6.2.5 流水线模式(或生产者-消费者 )

6.3 google的mapreduce编程框架。

重点:主-从模式,流水线模式。

难点:数据并行、任务并行、工作池模式。

并行程序设计基础。

知识点。并行计算概念。

并行计算机分类。

多核处理器架构。

并行层次与分类。

多进程编程与进程间通信。

知识点。多进程的创建。

管道。消息队列。

信号量。记录锁。

共享内存。信号处理

多线程编程。

知识点。线程基础。

线程的创建。

线程终止。线程互斥。

条件变量。读-写锁。

信号量。线程安全性。

线程设计技巧。

mpi编程。

知识点。mpi的特点。

mpi执行模型。

进程组。通信域。

点对点通信原语。

集合通信原语

并行程序性能分析方法。

知识点。影响并行程序性能的可能因素。

执行时间度量方法。

加速比度量方法。

可扩展性度量方法。

常用的性能优化方法。

并行模式。知识点。

数据并行。任务并行。

工作池模式。

主-从模式。

流水线模式

课程实验(一)

实验名称:多进程编程。

实验目的:通过实验使得学生了解多进程程序的设计方式,程序结构特点,父进程与子进程间的通信与控制技术。

实验内容:含2道编程题:1道简单编程题,1道难度较大的选作题。

课程实验(二)

实验名称:线程编程。

实验目的:通过实验使得学生能够正确理解线程的执行过程,线程的创建、中止、结束方法,能够掌握互斥、条件变量、信号量等线程间的同步技术,能够判断线程安全性引起的原因并加以解决。

实验内容:含1道编程题,大概需要200行左右的**,coursegrading系统自动评判提交的多线程并行程序。

课程实验(三)

实验名称:mpi编程。

实验目的:通过实验使得学生了解mpi的程序结构,了解执行模式,掌握基本的通信原语,对于拔尖学生,期望他们能够掌握多线程(或多进程)与mpi混合编程方法。

实验内容:含1道编程题,大概250行左右的**,coursegrading系统自动评判提交的mpi并行程序。

《高级语言程序设计》课程设计大纲

计算机软件课程设计 课程设计大纲。1 目的要求。在教师指导下,学生根据选定的课题,综合运用所学程序设计的知识,完成问题分析 模块设计 编写 程序调试和运行等训练任务。通过课程设计,初步锻炼运用所学基础知识解决实际问题的能力,掌握软件开发的基本过程和基本方法以及良好的编程风格,培养在软件开发中相互合作...

《高级语言程序设计》课程设计大纲

高级语言程序设计 课程设计教学大纲。课程名称 高级语言程序设计课程设计课程总学时 32 适用专业 广播电视工程 电子信息工程 电子科学与技术课程类别 必修 一 课程设计任务与目的。高级语言程序设计 课程是一门实践性较强的课程,课程设计环节是课程学习的重要组成,是课程教学的必经步骤。目的是培养学生实际...

《高级语言程序设计A》课程教学大纲

高级语言程序设计a 课程教学大纲。课程名称 高级语言程序设计a advanced programming language a 课程 020101 学时 64 学分 4 讲课学时 44 上机 实验学时 20 考核方式 考查。课程简介 本课程主要介绍c语言的发展史及现状 高级语言程序设计a 课程教学大...