注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

阿弥陀佛

街树飘影未见尘 潭月潜水了无声 般若观照心空静...

 
 
 

日志

 
 
关于我

一直从事气象预报、服务建模实践应用。 注重气象物理场、实况场、地理信息、本体知识库、分布式气象内容管理系统建立。 对Barnes客观分析, 小波,计算神经网络、信任传播、贝叶斯推理、专家系统、网络本体语言有一定体会。 一直使用Java、Delphi、Prolog、SQL编程。

网易考拉推荐

解决并行程序移到12核(24线程),性能较差的问题  

2014-09-28 09:05:21|  分类: Scala |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
迁移到12核(24线程)后,性能没有提高。 - 险峰 - 阿弥陀佛
原因:
1. 对Barnes插值使用数组的par并行计算,但所有cpu的占用率,仅仅在30%--40%左右
2. 引入Actor概念后,各个区域的par并行计算实效。
解决途径:
将系统改造为基于Actor模型的消息触发。

2014-09-29
引入Actor后效果反而更加难以控制。
合计时间达到120分钟。平均2627毫秒。
(Java7 变为Java8)
迁移到12核(24线程)后,性能没有提高。 - 险峰 - 阿弥陀佛


2014-09-29 11:35
对nc文件处理放入到Future中完成。
合计时间达到113分钟。平均2470毫秒。
迁移到12核(24线程)后,性能没有提高。 - 险峰 - 阿弥陀佛


2014-09-29 14:07
继续扩大Barnes插值完成后的Future代码范围;
对Cressman平滑Level由10,削减为6;
邻近站点数由10,削减为7。
合计时间为44分钟。平均975毫秒。
迁移到12核(24线程)后,性能没有提高。 - 险峰 - 阿弥陀佛

2014-09-29 :18:23
合计时间为43分钟。平均958毫秒。
for (
      i <- (0 until nRow).par;
      j <- (0 until nCol).par;
      if (mat01(i)(j) > 0)
    ) { // 地理边界控制矩阵
       for (
          e <- (0 until nEle_cn).par
        ) {

2014-10-01 00:07
在没有使用Akka, 写磁盘的情况下,CPU24线程占用率可以保持在80%。
合计时间为34分钟。平均759毫秒。
迁移到12核(24线程)后,性能没有提高。 - 险峰 - 阿弥陀佛

2014-10-01 16:34
合计时间为26分钟。平均579毫秒。
JAVA_OPTIONS = -Xmx10240M -XX:MaxPermSize=4096m
体会:
1. scala语言的并行处理能力简洁。分为par, Future, Actor三个层次。
2. 对于耗时较长的格点场计算,par较为适宜。使用Future会导致内存释放困难,应慎重使用。
3. 对于具有3000个作业的并行计算,分为10个批次较好。否则,越到后面,性能越低。
迁移到12核(24线程)后,性能没有提高。 - 险峰 - 阿弥陀佛
 
迁移到12核(24线程)后,性能没有提高。 - 险峰 - 阿弥陀佛
2014-10-01 17:46
将3000个区域客观分析计算分为10个批次,花费时间无明显差异。
好处是,可以把需要急迫的区域放在第一时间完成。
合计时间为26分钟。平均584毫秒
解决并行程序移到12核(24线程),性能较差的问题 - 险峰 - 阿弥陀佛

将最近邻域站点由7个站点改为10个;
格点场平滑层次由6改为10
合计时间为36分钟。平均797毫秒
解决并行程序移到12核(24线程),性能较差的问题 - 险峰 - 阿弥陀佛
  评论这张
 
阅读(288)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017