嵌入式系统实验教学课程_第1页
嵌入式系统实验教学课程_第2页
嵌入式系统实验教学课程_第3页
嵌入式系统实验教学课程_第4页
嵌入式系统实验教学课程_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实时系统分析与设计实验厦门大学信息科学与技术学院嵌入式系统实验教学课程共15页,您现在浏览的是第1页!实验用书《多核程序设计》,浙江大学、复旦大学、清华大学、北京大学、上海交通大学编写,清华大学出版社,2007年9月第1版嵌入式系统实验教学课程共15页,您现在浏览的是第2页!实验一:C++编译器实验实验要求硬件英特尔多核处理器512MB内存20GB硬盘支持32位像素显卡软件WindowsXP*SP2MicrosoftVisualStudio*.NET2003英特尔C++编译器9.0或更高版本英特尔VTune性能分析器7.2或更高版本英特尔ThreadChecker线程检查器2.2或更高版本英特尔ThreadProfiler线程档案器2.2或更高版本实验代码嵌入式系统实验教学课程共15页,您现在浏览的是第3页!

1、在VisualStudio.NET之后安装IntelC++编译器试用版

实验一、原始编译(1)用微软C++编译器编译将光盘内的code文件夹整个复制到硬盘,如E盘根目录,在上面的命令行界面输入如下命令跳转到RayTrace2目录:>cdE:\code\CompilerSwitches\raytrace2\source\RayTrace2\然后清理以前生成的文件:>nmake/fraytrace2.makclean编译文件:>nmake/fraytrace2.makCPP=cl.exe运行渲染图像程序:>raytrace2320240>Press‘g’tobegintherender>Press‘q’toquittheapplication将屏幕上显示的运行时间记录下来________。

(2)用英特尔C++编译器编译先清理以前生成的文件:>nmake/fraytrace2.makclean编译文件:>nmake/fraytrace2.mak运行渲染图像程序:>raytrace2320240>Press‘g’tobegintherender>Press‘q’toquittheapplication将屏幕上显示的运行时间记录下来________。嵌入式系统实验教学课程共15页,您现在浏览的是第4页!实验二:IntelVTune工具实验一寻找热点区域基于时钟事件取样收集gzip.exe的数据,并识别最耗时间的函数。问题:

gzip.exe中哪个函数消耗了最多的时间?

gzip.exe中哪个函数CPI最高?

gzip.exe源代码中哪一行时钟周期最多?

gzip.exe是多线程程序吗?嵌入式系统实验教学课程共15页,您现在浏览的是第5页!实验四使用Windows命令行问题:(1)查看gzip的分析数据(2)封装数据并在图形界面中查看图形界面显示样本分析数据。嵌入式系统实验教学课程共15页,您现在浏览的是第6页!定位到文件夹code\MKL_Overview\DGEMM,打开文件mkl_lab_solution.c,仔细查看4段不同方法实现同一矩阵乘法的代码;检查文件Makefile中的include和library路径,修改为与本机一致;打开开始菜单->所有程序->Intel(R)SoftwareDevelopmentTools->Intel(R)C++Compiler9.0->BuildEnvironmentforIA-32Applications,输入:nmake,编译完成后目录下会生成一个matrix.exe文件,输入:matrix.exe运行程序,会提示输入矩阵的维数(输入的数字尽量大些,如1000),记录运行结果并观察它们的差异:roll_your_own:___________DDOT:__________DGEMV:___________DGEMM:___________MKL默认使用单线程,可以通过改变环境变量OMP_NUM_THREADS来自定义MKL使用的线程数量,输入:setOMP_NUM_THREADS=2,重新运行程序观察结果;改变不同线程数量,记录各自的运行结果。问题:当自定义的线程数量超过处理器核的数量时,会发生什么现象?嵌入式系统实验教学课程共15页,您现在浏览的是第7页!实验五:Intel®

ThreadChecker实验一在程序中寻找潜在的数据竞争问题:为什么会出现这些冲突?实验二数据竞争问题的解决问题:修改好的多线程程序运行结果和之前的单线程程序一样吗?实验三检测死锁问题问题:用大的数据集可以让线程检查器收集到更多的信息,这个说法正确吗?嵌入式系统实验教学课程共15页,您现在浏览的是第8页!实验七

Windows多线程编程技术

-实时多任务调度

一、实验目的1、掌握多线程编程的特点。2、了解实时多任务的调度和执行过程。3、掌握实时多任务的同步问题。二、实验内容通过创建5个优先级不同的线程,来模拟实时多任务的调度执行过程,要注意多线程之间的同步问题。嵌入式系统实验教学课程共15页,您现在浏览的是第9页!实验二高阶优化,参数(-O3)将屏幕上显示的运行时间记录下来——;实验三矢量化优化,参数(-Qxp)将屏幕上显示的运行时间记录下来——;实验四综合优化,参数(-O3、-Qxp、IPO、PGO)将屏幕上显示的运行时间记录下来——。嵌入式系统实验教学课程共15页,您现在浏览的是第10页!实验二采样问题:(1)观察每个不同进程运行状态,单击Thread\Module按键。(2)选择某段时间并放大(3)查看这段时间区域的常规取样视图实验三调用曲线图问题:哪个函数消耗的时间最多,它被哪些函数调用过?嵌入式系统实验教学课程共15页,您现在浏览的是第11页!实验三:MKL本实验通过分别用原始运算、DDOT、DGEMV、DGEMM编译和运行一个矩阵乘法程序,演示了原始计算、一级BLAS、二级BLAS、三级BLAS的性能特征和它们之间的差异。实验步骤:嵌入式系统实验教学课程共15页,您现在浏览的是第12页!实验四:OpenMP线程编程实验一Helloworlds并行编程实验;实验二用OpenMP编写用积分方法求PI值的算法;实验三用OpenMP改进MonteCarloPI算法;嵌入式系统实验教学课程共15页,您现在浏览的是第13页!实验六:Intel

Threadprofiler实验一IntelThreadProfiler入门实验二负载平衡问题

嵌入式系统实验教学课程共15页,您现在浏览的是第14页!实验八

linux多线程编程技术

一、实验目的1、掌握Linux多线程编程的特点。2、重点掌握同步、互斥问题的解决。二、实验内容进程同步都要涉及到的一个经典问题就是哲学家就餐问题下面来介绍一下哲学家就餐问题:哲学家就餐问题中,一组哲学家围坐在一个圆

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论