北大青鸟佳音旗舰

Java语言中使用OpenMP

点击数: 更新时间:2010-05-20 15:35:52
 

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

  今天,测试了一下,Java语言中也可以使用OpenMP。以下是详细测试过程:

  1. 下载jomp1.0b.jar

  http://www2.epcc.ed.ac.uk/computing/research_activities/jomp/index_1.html

  2. 将jomp1.0b.jar部署到JDK的lib下,然后追加到CLASSPATH。我用的JDK版本为1.6.0_19(最新JDK为1.6.0_20)。

  也可以不追加到系统变量,而是直接解压后当作应用类使用。

  3. 编写测试代码TestJavaOpenMP.jomp。扩展名必须为jomp。

  import java.util.*;

  public class TestJavaOpenMP

  {

  public static void main(String[] agrs)

  {

  int i;

  //omp parallel for

  for(i = 0; i < 20; i++)

  {

  System.out.println("i = " + i);

  }

  }

  }

  4. 由jomp 生成java文件:

  java jomp.compiler.Jomp TestJavaOpenMP。(这里不带jomp扩展名)

  生成TestJavaOpenMP.java文件。

  5. 编译TestJavaOpenMP.java:

  java TestJavaOpenMP.java. 生成TestJavaOpenMP.class文件

  6. 运行:

  java -Djomp.threads=2 TestJavaOpenMP

  一个运行结果:

  i = 0

  i = 10

  i = 1

  i = 2

  i = 11

  i = 12

  i = 3

  i = 13

  i = 14

  i = 4

  i = 15

  i = 5

  i = 16

  i = 6

  i = 17

  i = 7

  i = 18

  i = 8

  i = 9

  i = 19

  java -Djomp.threads=4 TestJavaOpenMP

  一个运行结果:

  i = 15

  i = 0

  i = 10

  i = 5

  i = 11

  i = 1

  i = 16

  i = 2

  i = 12

  i = 6

  i = 13

  i = 14

  i = 3

  i = 17

  i = 18

  i = 19

  i = 4

  i = 7

  i = 8

  i = 9

  可以看到,该运行结果类似C/C++语言中的结果。是否真的在多核上运行,需要对比一下运行时间才能知道。

  本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/richard_wu2005/archive/2010/05/19/5607586
 


            

上一篇:Java小技巧:关于Cookie的操作[ 05-20 ]下一篇:Jjava String.IndexOf方法 [ 05-20 ]
相关信息
没有相关内容
©Copyright2004 - 2009 www.bjaccp.com, All Rights Reserved
版权所有2004-2008 北大青鸟APTECH( 北京佳音旗舰 ) 授权培训中心
地址:北京西城区北礼士路100号( 阜成门华联商厦西门北侧北走50米)100037北大青鸟地址
京ICP备06064589号
51.la