当前位置:文档之家› 嵌入式系统实验教学课程PPT

嵌入式系统实验教学课程PPT

实时系统分析与设计实验
厦门大学信息科学与技术学院
1
实验用书
《多核程序设计》,浙江大学、复旦大学、 清华大学、北京大学、上海交通大学编写, 清华大学出版社,2007年9月第1版
2
实验一:C++编译器实验
实验要求
• 硬件
英特尔多核处理器 512 MB 内存 20 GB 硬盘 支持32位像素显卡
• 软件
Windows XP* SP2
Microsoft Visual Studio* .NET 2003
英特尔 C++ 编译器 9.0 或更高版本
英特尔 VTune性能分析器 7.2 或更高版本
英特尔 Thread Checker 线程检查器2.2 或更高版本
英特尔 Thread Profiler 线程档案器 2.2 或更高版本
(2)用英特尔C++编译器编译 先清理以前生成的文件: > nmake /f raytrace2.mak clean 编译文件: > nmake /f raytrace2.mak 运行渲染图像程序: > raytrace2 320 240 > Press ‘g ’ to begin the render > Press ‘q ’ to quit the application 将屏幕上显示的运行时间记录下来 ________。
3
实验代码
1、在Visual 之后安装Intel C++编译器试用版 实验一、原始编译 (1)用微软C++编译器编译
将光盘内的code文件夹整个复制到硬盘,如E盘根目录,在上面的命令行界面输入如下命令跳 转到RayTrace2目录: > cd E: \code\CompilerSwitches\raytrace2\source\RayTrace2\ 然后清理以前生成的文件: > nmake /f raytrace2.mak clean 编译文件: > nmake /f raytrace2.mak CPP=cl.exe 运行渲染图像程序: > raytrace2 320 240 > Press ‘g ’ to begin the render > Press ‘q ’ to quit the application 将屏幕上显示的运行时间记录下来 ________。
4
实验二 高阶优化,参数(-O3) 将屏幕上显示的运行时间记录下来——;
实验三 矢量化优化,参数(-Qxp) 将屏幕上显示的运行时间记录下来——;
实验四 综合优化,参数(-O3、-Qxp、 IPO、PGO) 将屏幕上显示的运行时间l VTune 工具
实验一寻找热点区域 基于时钟事件取样收集gzip.exe的数据,
13
实验七 Windows多线程编程技术 -实时多任务调度
一、实验目的 1、掌握多线程编程的特点。 2、了解实时多任务的调度和执行过程。 3、掌握实时多任务的同步问题。 二、实验内容 通过创建5个优先级不同的线程,来模拟实时多任务的
10
实验四: OpenMP线程编程
实验一Hello worlds 并行编程实验; 实验二用OpenMP编写用积分方法求PI值
的算法; 实验三用OpenMP改进Monte Carlo PI算
法;
11
实验五: Intel ® Thread Checker
实验一 在程序中寻找潜在的数据竞争 问题:为什么会出现这些冲突?
Tools->Intel(R) C++ Compiler 9.0->Build Environment for IA-32 Applications,输入:nmake,编译完成后目录下会生成一个 matrix.exe文件,输入:matrix.exe运行程序,会提示输入矩阵的维数 (输入的数字尽量大些,如1000),记录运行结果并观察它们的差异: • roll_your_own: ___________ • DDOT: __________ • DGEMV: ___________ • DGEMM: ___________ • MKL默认使用单线程,可以通过改变环境变量OMP_NUM_THREADS来 自定义MKL使用的线程数量,输入:set OMP_NUM_THREADS=2, 重新运行程序观察结果; • 改变不同线程数量,记录各自的运行结果。 问题:当自定义的线程数量超过处理器核的数量时,会发生什么现象?
BLAS、三级BLAS的性能特征和它们之间的差异。 实验步骤:
9
• 定位到文件夹code\ MKL_Overview\DGEMM,打开文件 mkl_lab_solution.c,仔细查看4段不同方法实现同一矩阵乘法的代码;
• 检查文件Makefile中的include和library路径,修改为与本机一致; • 打开开始菜单->所有程序->Intel(R) Software Development
问题: 哪个函数消耗的时间最多,它被哪些函数 调用过?
7
实验四 使用Windows命令行 问题: (1)查看gzip的分析数据 (2)封装数据并在图形界面中查看图形界面
显示样本分析数据。
8
实验三: MKL
本实验通过分别用原始运算、DDOT、 DGEMV、DGEMM编译和运行一个矩阵乘 法程序,演示了原始计算、一级BLAS、二级
并识别最耗时间的函数。 问题: gzip.exe中哪个函数消耗了最多的时间? gzip.exe中哪个函数CPI最高? gzip.exe源代码中哪一行时钟周期最多? gzip.exe是多线程程序吗?
6
实验二 采样 问题:
(1)观察每个不同进程运行状态,单击 Thread\Module按键。
(2)选择某段时间并放大 (3)查看这段时间区域的常规取样视图 实验三 调用曲线图
实验二 数据竞争问题的解决 问题:修改好的多线程程序运行结果和之前的单 线程程序一样吗?
实验三 检测死锁问题 问题:用大的数据集可以让线程检查器收集到更 多的信息,这个说法正确吗?
12
实验六: Intel Thread profiler
实验一 Intel Thread Profiler入门 实验二 负载平衡问题
相关主题