自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 资源 (2)
  • 收藏
  • 关注

原创 OpenMP编程学习笔记七

在单核多线程程序中,对临界变量以及临界区的访问,是atomic方式的。在OpenMP中,由于是多个thread共同负责完成一个任务,所以必然有访问操作(回写)同一个变量的情形,OpenMP引入atomic directive应对这种情形。测试代码:void testAtomic(){    omp_set_num_threads( 4 );    int sum

2010-05-27 11:21:00 806

原创 OpenMP编程学习笔记六

在单核多线程程序中,经常需要同步多个线程以完成任务,在这个过程中有的线程会被挂起。在OpenMP中,为了同步各个线程,需要使用barrier。测试代码:void testBarrier(){    omp_set_num_threads( 4 );#pragma omp parallel    {        printf("test OpenMP 1/n")

2010-05-27 11:05:00 2000

原创 OpenMP编程学习笔记五

critical 使用:如果代码段只需要一个thread执行,可以使用single标明。如果代码段需要ID为0的thread执行,使用master标明。那么,如果代码段需要各个CPU互斥执行,也就是要求每个CPU都执行一次,但任何时候只用一个CPU在执行。这种情况可以使用critical。从宏观上看,该代码段被依次在各个CPU上被执行,各个CPU在执行该代码的时序上没有重叠

2010-05-26 11:29:00 2704

原创 OpenMP编程学习笔记四

single的用法。parallel的目的就是能够让多个CPU协调处理问题,从而提高运行性能。例如,如下的代码,各个CPU都会执行一次。#pragma omp parallel{printf("test OpenMP/n");}更多的时候,我们可能希望这种代码只要在一个CPU上执行就行了,以便减少CPU的功耗。这时可以使用single。测试代码如下:void tes

2010-05-26 10:38:00 1419

原创 OpenMP编程学习笔记三

今天学习了OpenMP sections。sections的主要功能是用户可以将一个任务分成独立的几个section,每个section由不同的thread来处理。C/C++测试代码: int a = 2;int b = 20;int c = 200;int d = 2000;int sum; omp_set_num_threads( 4 );

2010-05-25 11:20:00 1523

原创 OpenMP编程学习笔记二

      OpenMP是帮助程序人员能够方便编写并行程序的一种解决方案,程序编写人员主要的任务还是放在问题的空间结构与逻辑结构上。如何能够使程序并行运行,是OpenMP解决的问题(算法问题)。      OpenMP是通过将任务分配到不同的线程上完成的。1. 设置线程数目omp_set_num_threads() API。可以设置OpenMP能够控制的并行线程数目。一般情况下,该数目

2010-05-21 11:10:00 1734

原创 Java语言中使用OpenMP

   从去年年中,开始学习Java,主要是维护公司用Java编写的服务器软件。目前,该服务器软件遇到一个问题,在下载大文件时,如果同时下载的用户很多,服务器软件工作会出现异常,有的用户无法下载。服务器硬件基本上都是多核处理器,所以,如果能在Java语言中使用并行编程技术,使用OpenMP,可能会提高服务器软件的性能。  今天,测试了一下,Java语言中也可以使用OpenMP。以下是详细测试过程

2010-05-19 14:28:00 6581

原创 OpenMP编程学习笔记一

  前段时间,我工作的台式机换成了PC 工作站。除了有6G内存,64位外,而且是4核的。刚好这段时间工作上没有什么事情,于是开始学习多核与并行编程。以前做了很长时间的单核多线程编程,所以对多核多线程编程很是期待。今天,在VS2008与Linux下,分别测试了openMP的简单例子,对多核编程有了一点直观认识。 测试例子test.cpp为: #include #include

2010-05-18 15:16:00 1452

TCC890x WinCE6 高清播放器

这时我在业余时间用贴图完成的TCC890x WinCE下的高清播放器。所有按钮,进度显示等都是通过贴图实现。

2011-07-28

C++语言引入了并发机制,可以很容易的编写并发多线程程序了。

以前,编写C++并发的多线程程序时,总是要借助操作系统提供的API。因此,C++的多线程程序移植比较麻烦。现在,最新的C++语言标准引入了多线程,解决了不同平台之间需要修改才可以运行的移植问题。

2010-06-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除