topics

全部话题 - 话题: 并行程序
首页 2 3 4 5 6 末页 (共10页)
S******n
发帖数: 5022
1
来自主题: Hardware版 - 这么DIY一台机器,可行不?
690的频率比670低,核心虽然多,但是得有专门的并行程序才能把多核心的潜力发挥出
来。
你看,一般的应用,i7-4960X还不如i7-4770k呢,intel自己都说慢10%。
l*******1
发帖数: 866
2
来自主题: Hardware版 - 这么DIY一台机器,可行不?
开发多核心的潜力要专门的并行程序?这是GPU不是CPU哎童鞋......
s******u
发帖数: 501
3
基本上你的理解没错。HT仅仅增加了一组寄存器和loop buffer,但是取码,解码,执
行,缓存,预测机构等等全部都是共享的。其中的取码和解码单元是分时共享,可以多
少实现基于pipeline的并行化,但是其余的部分完全是竞争的关系。也就是说,HT节省
了线程context切换,以及部分解码所需要的时间,理想情况下大概会有5%-10%的性能
提升。better than nothing..
对比,PowerA2的CPU每个核心有4个FP执行单元,但是共享dispatching,比intel得HT
厚道多了,基本上能有2倍的性能提升。推土机架构了解的不多,似乎是两个整数单元
,但是共享一个FP单元,也是远好于HT
y**b
发帖数: 10166
4
来自主题: Hardware版 - 自己组装cluster,可行吗?
这个厉害,72core,带宽够吗,不知道效率怎么样
比如运行72个线程的并行程序,效率能到xx%?
y**b
发帖数: 10166
5
来自主题: Hardware版 - CPU的发展最近几年没啥大提高
这是事实。所以并行程序是以后一个趋势,可惜复杂程度高出太多。
o**2
发帖数: 168
6
来自主题: Java版 - 工作中遇到的并行处理问题
我用FMP把楼主的程序重写了一遍,在这里分多层贴出来,供楼主参考,也欢迎大家评
论。
FMP的binary可以在这里download:http://search.maven.org/#browse|1968728870
Predictor class完全没有变化,我加的都是些print outs。
public class Predictor {
private static int sn = 0;
private synchronized static int incSN () {
return sn++;
}
private String mySN = "Predictor#" + incSN ();
public Predictor () {
System.out.println (mySN + " is starting - " + Thread.currentThread
().getName ());
// time consuming stuff.
System.out... 阅读全帖
o**2
发帖数: 168
7
来自主题: Java版 - 工作中遇到的并行处理问题
You got it :)
FMP支持active object cluster,所以程序可以写得稍微更简单一点。
o**2
发帖数: 168
8
来自主题: Java版 - 工作中遇到的并行处理问题
我不是很理解你的问题,这些是POJO,用在哪里它都遵循Java language的定义啊。
根据楼主的介绍,我估计他的程序要么是一个batch job,要么是一个back office的
engine。这些class的instance肯定不是直接为每一个http connection创建和服务的。
o**2
发帖数: 168
9
来自主题: Java版 - 工作中遇到的并行处理问题
FMP在JavaScript里有两个主要用途。一是作为一个组织代码的手段,鼓励function作
为object的method,然后用FMP来access。这样的话,写JS的大程序就容易了。
二是并发编程。JavaScript在browser和Node.js都是同一种thread model,就是每一个
thread(e.g. web worker or sub-process)都有它独享的内存,然后thread之间用
channel来通讯。
Online demo的link在前面已经列出来了。这里有我以前写的两篇blog,是关于FMP和
JavaScript的。
https://weblogs.java.net/blog/rexyoung/archive/2012/05/04/little-details-
about-implementation-fast-messenger-javascript
https://weblogs.java.net/blog/rexyoung/archive/2012/06/25/obsolete-need-help
-confirming-two-... 阅读全帖
o**2
发帖数: 168
10
来自主题: Java版 - 工作中遇到的并行处理问题
没有用过code style checking tools。
我把一个thread完全隐含到一个Predictor的instance里面,对这个问题来说,是最符
合OOP设计原则的,同时也符合原要求。虽然内部有很多代码做interleaving的
checking,看起来很繁琐,但原则很简单。会producer/consumer pattern的程序员都
能写和接手这个程序。
Executor framework是基于task的,在这个问题上,只会把class弄的一团糟,后续的
维护和调整将会相当困难,比如一个Predictor的instance有问题了(要检测方便)要
换一个新的instance等。
建议你也动手写一个Executor版本的代码,贴出来我们分析讨论一下。

much
o**2
发帖数: 168
11
来自主题: Java版 - 工作中遇到的并行处理问题
你说的这个并不是thread特定的问题,当程序进入constructor时,JVM就已经把这个
instance建立起来了,然后的问题就是这个instance的internal state,也就是它的
instance变量,有可能在一个或多个constructor中有变化,而这些变化是不应该暴露
给外面的世界,相当于transaction的内部阶段。
我的代码没有这个问题,Predictor的constructor不改变instance的internal state。
o**2
发帖数: 168
12
来自主题: Java版 - 工作中遇到的并行处理问题
我完全没有被offensed,你讨论的态度非常positive and professional。
关于我对executor framework的看法,我已经在和goodbug的讨论中(link below)陈述
过了。(goodbug silently退出了讨论。)
FMP vs ExecutorService/Future
http://www.mitbbs.com/article_t0/Programming/31258897.html
简单地说,我的意见和你的相左。Java executor framework比不上C#的async keyword
,就按你说的限制在Java之内的话,也比不过Spring Framework的@Async。
至于你提到的硬件加速等performance boost,那是FMP不care的东西。因为FMP卖的是
spec是标准,你没有注意到我的project是自称为reference implementation吗?
就象C不会去和汇编比速度、也不会自称是汇编代码的management一样,FMP也是自成体
系的。FMP追求的重点是降低程序员写并... 阅读全帖
y**b
发帖数: 10166
13
请问一般用什么通用的方法和工具?
有几个问题请教:
(1)PAPI_MEM_SCY(Cycles Stalled Waiting for Memory Access,好处是可以嵌在代
码里面,尤其适合并行计算)似乎不支持sandybridge/ivybridge/haswell几种处理器,
是不是意味着基于PAPI的TAU,PerfSuite,HPCToolkit也没法做这种测试?
(2)用perf进行了测试,结果如下
perf stat -p 48382 sleep 10
Performance counter stats for process id '48382':
4821.604141 task-clock (msec) # 0.963 CPUs utilized
[100.00%]
1,218 context-switches # 0.253 K/sec
[100.00%]
0 ... 阅读全帖
f*******y
发帖数: 988
14
来自主题: Programming版 - 并行程序能做到不用专门写么?
就是对于用户来看只有一个CPU,编译的时候自动把可以分解的分解了
h***z
发帖数: 233
15
来自主题: Programming版 - 并行程序能做到不用专门写么?
You can do that with some functional programming languages.
r*********r
发帖数: 3195
16
来自主题: Programming版 - 并行程序能做到不用专门写么?
using OpenMP can do that for you.
but it only supports C, C++, Fortran now.
l*****g
发帖数: 547
17
来自主题: Programming版 - 并行程序能做到不用专门写么?
if you use SGI IRIX, you can do it automatically.
f*******y
发帖数: 988
18
来自主题: Programming版 - 并行程序能做到不用专门写么?
openmp已经很不错了,但是还需要directive的
f*******y
发帖数: 988
19
来自主题: Programming版 - 并行程序能做到不用专门写么?
我说的是用户知道懒得写的那种,比如一些loop,编译器应该很容易知道怎么分解
算法上的分解当然还是靠人

someone taught it, of course), ipython 对于这种问题提供一些这样的 syntax 可
以对用户看起来是 code 单个 CPU, 但是自动使用多个 CPU.
a****l
发帖数: 8211
20
来自主题: Programming版 - 并行程序能做到不用专门写么?
it's easier said than done!
r*********r
发帖数: 3195
21
来自主题: Programming版 - 并行程序能做到不用专门写么?
you can always hire someone to do the work for you...
k****f
发帖数: 3794
22
来自主题: Programming版 - 怎样提高C#计算程序的performance?
那种函数基本也是对应于汇编码的
是不是用了这种函数,那个函数的调用代码中,gcc的优化选项就会被暂时禁止呢?
曾经用vc写过mmx的并行,结果还不如用c语言的优化。
肯定是有什么trick在里面,比如内存对齐,交错指令,预读取,
没有用对的话,结果还不如不用
f**********w
发帖数: 93
23
来自主题: Programming版 - 抱怨一下:调试程序郁闷死了
推荐petsc包,自带很多解线性方程的方法,可以并行
y**b
发帖数: 10166
24
来自主题: Programming版 - vector
最近发现MPI并行程序操作HDF5格式大文件时,使用array简直是恶梦。
一是分配和释放同一块内存可能由不同函数完成,程序员负担极重。
二是各个进程(比如发送者和接收者)必须极其明确自己是否分配或释放了某块内存,
点对点通讯与collective通讯混合使用时候,极易出错,而且不好调试。
改成vector以后轻松一大截。
h*******n
发帖数: 82
25
CPU level,可以试试intel TBB,不过最后速度和openmp应该差别不是太大
要blast speed,只有写到GPU里面运行,速度提升100倍以上,如果你的运算需要大规模
parallel computation的话,记得买个好的显卡,差别太大了。一个小的台机,配一个
好的显卡
轻松打败你的32核服务器。
GPGPU有很多选择,
比较火的c++ 11里面c++ AMP,前提有个支持directx11的显卡,那么c++ AMP可以利用
direct compute在显卡上跑C++程序,门槛应该比较低,但是你要跨平台就要另作打算
nvidia cuda也是个不错选择,记得买NV的显卡
openCL也不错
你要是会写opengl,懂点shader的话,也可以用老的technique
http://www.mathematik.uni-dortmund.de/~goeddeke/gpgpu/tutorial.

y
s****a
发帖数: 238
26
不要一下子跑这么长的程序,把后面的注释掉一段段跑出来和单线程的对比,这样可以
缩小范围。
如楼上所说,原子操作很可能出问题,还有shared和private的变量有没有设对?
y****n
发帖数: 15
27
多谢大家的解答。
我又重新检查了一下,把线程数为1和2,结果相差10^-17。我现在觉得这不是程序错误
导致的,而是由于使用多个线程时 "F[i] += a" "F[i] += b" 求和顺序的变化引起的
舍入误差。
把atomic换成critical结果差不多,同样存在10^-17的差别。
z****e
发帖数: 54598
28
python的一些特性对于c++开发程序来说,显得比较重要
c++写一个thread太蛋疼了
但是对于其它语言来说,就显得无足轻重,比如java,所以jython一直都缺乏参与者
最后不得不放缓了开发的进度
python从某种意义上说,尤其是cpython,其实是传统c++的一种补充
所以很多c++程序员现在开始学python,早些年去搞java的c++程序员就不需要了
c******o
发帖数: 1277
29
来自主题: Programming版 - 异步编程+FP的程序的可读性太差
你没发现,在future monad这里,你都不用管啥串行,并行,你的dataflow自动就把这
些都解决了。
这个本身就叫data flow currency paradigm
要是有transaction, 再加STM/agent, 要是distributed, 再加 location neutral
Actors.
这些都是现在FP强的地方。
c******n
发帖数: 16666
30
说来比较悲催 非cs专业,搞了个小程序跑模拟,数据量小的时候还好,数据量一大先
是内存挂了。后来跑去ec2租了个大内存服务器发现跑得还是很慢,仔细一看,有个
function算得特别慢,因为是n*n的复杂度,数据量上去了计算时间马上跳了等量级上
升。自己又是一知半解的,不知道哪位能帮着改进下算法然后提示下OpenMP该怎么做。
简而言之,是个关于水文的模拟,计算流域面积,所以数据的基本单位/对象就是node
。 有两个linked-list(求别吐槽用这个而不用vector,摊子摊太大了 改起来不容易
,或者如果我现在添加一个vector,复制现有list行不?)里面存的都是node之间的指
针。
第一个linked-list存的所有node的指针,按照node的ID存放,方便遍历所有node
第二个linked-list,其实不止一个,存的是所有在当前node的下游的node的指针,遍
历的话可以从当前node一直走到当前mesh的边界
流域面积的具体计算,就是当前node自己的面积加上其所有上有点面积的总和
比如在下图中,
a b c d e
... 阅读全帖
n******7
发帖数: 12463
31
我实际一个run大概需要24小时,以后加了data可能更长。这次主要想看看内存可以少
到什么程度,速度能有多大提升。到时候给用户使用,还是资源消耗越少越好。
不过2%的差异确实不大,测试之前不知道能有多大区别,测试之后是奇怪为啥更小的
XMS可以更快
你可以看到cput在差异在5%左右,这是不是说,Xms小的情况下,并行效率更高了?我
第一次写java,以后估计也不怎么用了,这些问题主要是好奇...
如果用其他48分钟的run来评估背景的SD的话,这两个个47分钟的run大概在3个z-score
之外了。当然,像你说的,区别不大,所以也不详细测试了。
提高cache命中率我是一窍不通,不过先记下了。以后万一遇到类似问题,也知道改去
查些啥:)

是2
的人
t****n
发帖数: 263
32
来自主题: Programming版 - 老魏问你个问题
“即使同时读写也说明不了什么。关键要看指令有没有stall?”
魏大师,你说实话吧。你写过并行程序吗?这么硬顶着越漏越多,连这么弱智的话都说
出来了。
d***a
发帖数: 13752
33
来自主题: Programming版 - 用volatile退出线程对不对?(C++)
握手。你PhD导师是这个领域的大牛啊,他的PhD论文我读过。
我以前有一段时间被迫搞过并行程序的性能优化,那个烦人,现有的轮子都不能用(性
能问题)。
bihai的代码,确实是用标准的IPC机制就可以的。我前面也给他说过,一般是用signal。
UI进程发个信号给计算进程,计算进程写个信号处理handler来做退出,就可以了。这
样做的好处就是绕过了底层那些nasty的细节。当然他的做法,小心一点也是可以的。
搞嵌入式编程的人喜欢用那种方式。
m*****n
发帖数: 3575
34
R那些apply骨子里是loop,并行得用snowball
另外AlphaGo用40台电脑,每台N核,用的是python不是R

with
a*****e
发帖数: 1700
35
Python list comprehension 可以并行啊,用 Numba 库:
http://numba.pydata.org/numba-doc/dev/reference/pysupported.html#list-comprehension
list comprehension 本身也是从 FP 来的概念,等同于 list monad,但 Python 的语
法略局限。

with
x****u
发帖数: 44466
36
来自主题: Programming版 - GPU的本质
我看过去gpu不火是因为摩尔定律
与其花时间写并行程序,不如等几年主频也就涨了10倍
c*******v
发帖数: 2599
37
试着回答一下brainless,netghost的帖子。
(1)
区块链我不熟悉。但是目测300-500行写一个区块链后台没问题。
这里的要点是,假如有一个internet service新领域,我怀疑java是干不过go的。
因为go只有25个关键字。自带batteries够做很多东西。
简单说,go大幅度降低了并发的门槛,和internet service后台开发的门槛。
一个新领域对第三方库依赖不大的情况下,人民群众的力量是可能把一个方向
慢慢做好做精的。
目前现状似乎确实是各种区块链项目用go的挺多。我猜不会比java少吧。
我觉得就是原来web server用python的同一批屌丝...
(2)
我是做算法研发的。简单说就是开发新算法的。但是开发新算法和算法的生产实现
到最后是分不开的。算法到最后是无法和实现办法,语言,机器分开的。
那么我需要一个语言介于c python之间的办法。来平衡开发速度和运行速度。以及
deploy的难度。并且最好还有和新的应用领域结合的社区。而且我需要并行程序。
golang再怎么样毛病多。开发速度,运行速度,deploy难度,社区进展,各项综... 阅读全帖
c*******o
发帖数: 1722
38
来自主题: Software版 - C 和 C++ 相比有什么优点?
C应该快点,毕竟 overhead少。很多大的并行程序还是C吧。
不过新的C++标准似乎会考虑一些speed up etc.
r****y
发帖数: 1437
39
【 以下文字转载自 Science 讨论区 】
【 原文由 rossby 所发表 】
据说HPF可以不用explicitly message passing, 那岂不是写
并行程序很爽。
有什么好的网址推荐? Thanks in advance.
b*******u
发帖数: 62
40
来自主题: Computation版 - 有lsf queue大牛么
我们的PC cluster装的是
lsf queue的系统
但是openMP的dual processor
的并行程序老是运行
三十秒后就killed
Exited with exit code 103.
有大峡知道的么
br />
j**u
发帖数: 6059
41
来自主题: Computation版 - 问个并行算法的问题

cat /proc/cpuinfo
当然可以。还可以在单机上虚拟多个processor调试运行程序。
sc
发帖数: 122
42
自己编并行不容易阿,景仰一下,能讲讲怎么并起来的吗?多谢拉
p*****o
发帖数: 40
43
来自主题: Computation版 - 请教关于并行计算。
如果你的程序以后要做大肯定要mpi
如果只是在类似你手提之类的多核跑就openmp可以了
H***a
发帖数: 735
44
来自主题: Computation版 - 请教一个C++程序结构的问题
可以考虑用并行.
c***r
发帖数: 1570
45
来自主题: Computation版 - MPICH2并行程序 配置内存空间问题
depends on your code, the pde solver often divides computing domain into
several pieces and assign them to nodes.
U********a
发帖数: 75
46
来自主题: EE版 - 并行计算请教
请教大侠,怎样写一个multi-thread的程序呢?
s********k
发帖数: 78
47
来自主题: Quant版 - 转行求建议!!
大家好,我是理论物理专业的博士后,一直都是在做统计物理方向的课题,刚满30岁,
自觉拿教职无望,打算转行,不知道我的知识结构还需要在哪方面做些补充?
数学方面:至少数学系本科生层次的知识都具备,还自学了多变量统计,贝叶斯统计,
随机过程。
计算机方面: 独立用C/C++语言编写的代码大概有6万行,Linux用了有7年。经常用到
Monte Carlo算法,其他常见算法能说个大概,只是没实战经验。懂Matlab和R,还有
Shell脚本。还懂MPI和CUDA并行程序,写过这方面的代码。
物理方面:最熟的就是统计物理了,一直和复杂系统,相变,非平衡这类问题打交道。
不知道我这种背景还需要再补充那些知识呢?
谢谢!
s********k
发帖数: 78
48
来自主题: Statistics版 - 转行求建议!!
大家好,我是理论物理专业的博士后,一直都是在做统计物理方向的课题,刚满30岁,
自觉拿教职无望,打算转行作统计,不知道我的知识结构还需要在哪方面做些补充?
数学方面:至少数学系本科生层次的知识都具备,还自学了多变量统计,贝叶斯统计,
随机过程。
计算机方面: 独立用C/C++语言编写的代码大概有6万行,Linux用了有7年。经常用到
Monte Carlo算法,其他常见算法能说个大概,只是没实战经验。懂Matlab和R,还有
Shell脚本。还懂MPI和CUDA并行程序,写过这方面的代码。
物理方面:最熟的就是统计物理了,一直和复杂系统,相变,非平衡这类问题打交道。
不知道我这种背景能不能转做统计,我还需要再补充那些知识呢?
谢谢!
a****a
发帖数: 5763
49
随着CPU与GPU合并成技术发展的趋势,苹果开发出了OpenCL框架,能够进行高速并行处
理的能力使OpenCL成为了业界标准,被广泛应用。
最近几年,GPU的发展吸引了很多来自科学计算界人士的目光。GPU有稳定的市场推动力
—公众喜闻乐见的电子游戏产生了源源不断的升级GPU的需求—因此比CPU的更新步伐更
快。从技术上讲,GPU本身就是多核架构,高端显卡往往有五百多个核心,即使低端的
集成GPU也有二三十个核心,所以能够通过并行来高效处理成千上万的线程。同时,对
于科学技算中的浮点计算,GPU往往通过硬件加速使其效率比传统CPU更高,因为图形渲
染等工作基本都是浮点计算。
GPGPU浮出水面
早期的GPU只能执行固定的程序,而不开放给程序员编程。随着时代的发展,图像处理
有时需要对着色器进行编程以实现一些特效,因此需要程序员可以使用GPU的汇编语言
写简单的着色程序。这自然对程序员要求过高,所以一些高阶的着色语言又被GPU厂商
开发出来。比如微软和NVIDIA共同开发的Cg语言,就能为顶点和像素编写专门的着色程
序。这类技术虽然面向图形渲染工作者,却吸引了一小簇科学计算研究者的兴趣。... 阅读全帖
a****a
发帖数: 5763
50
http://bbs.weiphone.com/read.php?tid=517864
Mac OS X 10.6即所谓的Snow Leopard操作系统已正式发售。一如既往,Apple产品
光鲜的外表下凝聚了太多艰辛的劳作。ArsTechnic的John Siracusa以其独特的、专业
的、全面的视角深入翔实地体验这款最新的操作系统。
Weiphone.com将对该综述进行翻译整理并独家连载。欢迎关注
Grand Central Dispatch
上一篇连载《并行难题:一封19年前的挑战书(连载11/23)》中,我们讨论了
并行编程(parallel programming)的问题,以及该问题所导致的另一个更为深远问题,
那就是:近一二十年以来,尽管计算机硬件的发展已经迈上了一个新的台阶,然而“软
件”层面的发展却裹足不前,最终成为了限制计算机性能的主要因素之一。
针对这一问题,Snow Leopard的应对方案是Grand Central Dispatch(GCD)。
GCD是刚刚发布的Snow Leopard的一项新特性... 阅读全帖
首页 2 3 4 5 6 末页 (共10页)