o**2 发帖数: 168 | 1 我听你的,把第三章的Sharing Objects从第33到54页又读了一遍。发现就是按这本书
里说的标准,你对我的程序的判定也是错的,没有根据的。因为它说的是“Mutable
objects must be safely published, and mush be either thread safe or guarded
by a lock.”。我写的程序(在41楼)完全符合它对安全的定义,就是instance变量都
guarded by a lock。
我在66和67楼的回复中说这是OOP encapsulation的要求,不但对constructor,对任何
一个能change internal state的method,都有这个要求。就是你要等change made,才
能去publish/notify外部的其他objects。
而且我说的OOP encapsulation这个知识,是Brian在第三章说的知识的来源。
example they use to show what a bad code will be. |
|
t***a 发帖数: 416 | 2 这个就不想了。。。。anyway,很赞你先前帖子里的那句,可以降级程序写并发程序的
门槛
加油啊 |
|
m*******o 发帖数: 344 | 3 我有一个控制程序调用3个执行程序,本来是1执行完了做2,2做完了再做3
在别的平台上都正常运行,但是跑到我的ubuntu上编译运行,1,2,3一起执行了。也
就是说,不等1执行完,2就开始了。我在网上google也不清楚搜什么关键字,有没有大
牛指点一下? |
|
x****s 发帖数: 921 | 4 “一个控制程序调用3个执行程序”
There are millions ways to do that, you need give us more detailed info |
|
y****n 发帖数: 15 | 5 下面这段程序使用openmp执行一个类似图像线性插值的算法。
输入为Z(图像),X(坐标),Y(坐标),输出为F(图像)
为了避免同时写入数组F的某个元素,使用了#pragma omp atomic
我遇到的问题是,当把线程数设为1和2时,运行程序会得到不同的结果。实在想不出问
题出在什么地方。肯请大牛们帮忙看一看。
#pragma omp parallel for
for (int n = 0; n < MN; n++)
{
double y = Y[n];
double x = X[n];
int fx = (int)floor(x);
int fy = (int)floor(y);
if (fx<1 || x>nw || fy<1 || y>nh) // image index is [1...nw]
{
for (int i = 0; i < ndim; i++)
{
#pragma omp atomic
F[n+i*MN] += Z... 阅读全帖 |
|
x****l 发帖数: 266 | 6 有GPGPU的话,推荐用CUDA并行其中主要一两个模块试试,
如果非要用cluster,那MPI最好,如果嫌不好改,可以试试UPC |
|
c*****m 发帖数: 1160 | 7
单比较程序跑得快不快没有意义,还要比较写程序快不快,是不是容易有bug,是不是
write-only.
C++有些奇技淫巧让一小群精英陶醉,让90%的程序员都读不懂. |
|
w***g 发帖数: 5958 | 8 一个做纯计算的C++程序,用openmp并行化,发现用root跑比正常快25% ,怎么回事?
UPDATE:真实原因是我设了OMP_NUM_THREADS=6的环境变量,sudo的时候这个环境变量没
有带进去。CPU是6核12个线程,那25%的speedup是hyperthreading造成的。 |
|
d******e 发帖数: 2265 | 9 貌似还是golang的比较靠谱。
基本我需要的
for loop
vale --> (yield)
then another for loop
value --> yield
语言把具体的实现, exec context,都在后面做掉。
这样的程序又好读又有性能。
另外就是上actor,等我呦时间写写看看。 |
|
y**b 发帖数: 10166 | 10 我用intel pcm测试了一下单机工作站上的程序,
1 core 串行,L3HIT ratio 100%,
12 core并行,L3HIT ratio 97%,
这算高吗?
但也不知道pcm怎么测试cpu stall cycles。 |
|
|
l*****s 发帖数: 774 | 12 要是简单的程序的话,就用Mpi
复杂的用openmp
推荐Fortran,搞计算的嘛,Fortran首选
很多东西和matlab差不多。 |
|
l*****s 发帖数: 774 | 13 我想用MPI编一个简单的程序,就是矩阵的 LU decomposition.
有三种方法:
1.按照 Row 分
2.按照 Column 分
3.按照 块 分
想问一下,哪一种方法效率最好,最容易实现? Thanks |
|
r****y 发帖数: 1437 | 14 来自主题: Computation版 - 请教个问题 多年不搞fortran了,这次老革命碰到新问题了
想移植一个SGI Altix/Ifort上使用的并行程序到AMD Operton/pgf90上,
编译连接毫无问题,但是一运行就出现下列错误并异常终止
0: ALLOCATE: 18446744073709551615 bytes requested; not enough memory
18446744073709551615 = 2^64, 程序里并没有要求allocate
如此多的内存, 不知道为什么会出现这个问题
把compiler的options一个个试了试,无论怎么编译,都是
同样的错误。
哪位高见,指点指点。谢先。 |
|
d********d 发帖数: 497 | 15 主要是想现有的程序可以在个人电脑上利用现在的多核CPU并行计算,操作系统是
Windows。
没有这方面的经验,不知道如何下手。
请牛人指教。。
[1] 使用 Windows based Multi-Thread?
[2] 使用 OpenMP or MPI?
Thanks! |
|
m**2 发帖数: 5 | 16 qsub中要申请cpu和内存资源。然后进入等待的队列。并行程序和需要大内存只能通过
qsub提交。
一般小程序是可以直接运行的,但有资源限制,所以超时的话就被自动kill了。
可以查一下你们的manual,应该有具体的说明。 |
|
f*******a 发帖数: 80 | 17 工作中需要用到 scalapack。看了一个星期的文档和FORTRAN的例子。有个大概的了解
。注意到SCALAPACK要求矩阵是 2-d block-cyclic form。如果我要解 Ax=b的问题,我
一定要单写程序,把A变成 2-d block-cyclic form,再把矩阵从本地机传到并行机器
的访问节点么?
谢谢。 |
|
c******k 发帖数: 1140 | 18 简单点说,执行部分是每次把abcdefg这8个数带入一个矩阵,然后和已知矩阵们做相乘
运算,长话短说最后只得到一个数,当然全部for loop 结束后,会产生N多的数。这个
执行部分还要实时从N多的书中求出最小的10个数。
也就是程序执行完毕,这最小的10个数也产生了。 |
|
t******0 发帖数: 629 | 19 我在网上找到如下手册http://openmp.org/mp-documents/omp-hands-on-SC08.pdf
编写出如下Hello World程序,在VC2012下跑。
#include
#include
#include // system("pause")
int main()
{
omp_set_num_threads(4);
# pragma omp parallel
{
int ID=omp_get_thread_num();
printf("Hello(%d)",ID);
printf("World(%d)n",ID);
}
system("pause"); //课件里没有这句
return(0); //课件里没有这句
}
运行结果就是:
Hello(0)World(0)
Press any key to continue...
说好的1,2,3都没看见了。。。请问我是哪里编... 阅读全帖 |
|
p****f 发帖数: 251 | 20 极端情况,如果你的程序并行度为0, dual-core比single-core还慢。
performence? I read it somewhere, but forget its source...Many thanks! |
|
s*****z 发帖数: 22 | 21 请问这位能port程序能写出在cluster上运行的高效率并行程序的是研究物理的还是专
业程序员呢?
portable, |
|
a***c 发帖数: 315 | 22 尽管不少人尝试,包括FBI的顶级密码专家. 到如今也没被破译.有感兴趣的可以一同探
讨破译方法.偶以前写过一个并行程序尝试破译.运行了一个星期.没成功. |
|
h*******u 发帖数: 15326 | 23 马特拉布有马特拉不市场,也是共享代码的。小程序只多不少。 |
|
b*****6 发帖数: 801 | 24 什么水平啊,matlab精度不够,很多函数要自己重写
matlab能并行吗,唉 |
|
m**********e 发帖数: 12525 | 25 matlab当然能并行,你用的都是啥年代的盗版matlab? |
|
s********n 发帖数: 4535 | 26 印象中flops指数在一个级别上,但是intel的是通用cpu,上面写并行程序比gpu上要容
易得多,而且也内存大小的限制也小得多 |
|
m*****u 发帖数: 15526 | 27 根本不用什么发言。做个程序就完了。9位高手也在各自棋盘上下棋。真正的落子取9位
里重合最多的。如果9位有9种下法,那就重下再选。当然下棋的应该同时可以参考另外
8位的下法。 |
|
t*********l 发帖数: 844 | 28 对系统编程领域来说,并行编程是很重要的一个领域。学过操作系统课程的应该都学过
这部分。
还请申请人加强这方面的能力(当然,其他方面的编程的基本功都是不能缺少的)。 |
|
L**F 发帖数: 615 | 29 终端用什么都可以,但这类大型并行程序后台基本上都是Linux/UNIX clusters +MPI
。 |
|
c***r 发帖数: 1570 | 30 来自主题: MusicPlayer版 - 定了台電腦 amd其实还不错,看做什么用了。如果是视频的话可能比同级别intel要弱些,如果是用windows操作系统的话,单核频率一定要高,2核足以,4核以上那是留给服务器或者是并行程序的。
操作系统省钱的话推荐ubuntu,我一直用他,哈哈。
就是不知道Linux下有没有你所需要的软件了。 |
|
o****k 发帖数: 401 | 31 这个能告诉我程序是为什么不动的吗?
我重新submit他就可以算,可这样我就没法自动处理了,得盯着看是不是停了。 |
|
H****y 发帖数: 2992 | 32 高妹版,第三章
老张的车在郊外的一座小木屋前停下,随手拎起副驾上的一个破烂编织袋,下了车。这
房子本来是老丈人的,俩老过世后,就成了他的私人实验室了。除了厨房还保持着原有
的功能,所有的屋子都用来放置书桌,文件夹,电脑,仪器。到处散落着学生们自己做
的一些技术不高但颇有创意的小制作。老张不是个长袖善舞的人,每次在学校受了气,
来到这里才能把那些乱七八糟的都忘了。“他的二房。”张太原先经常这样和人打趣。
进了二楼的一间屋子,他随手把门关上,坐到桌前。面前的电脑都是十六年前的配置了
,除了他自己设计的几个,大部分软件都过时了。但这里面存的东西,不仅不过时,甚
至可以说是世界领先的。他从编织袋里拿出一个类似外部硬盘的东西,连到电脑上。这
是他设计的一个电子钥匙,离了这个小东西,电脑是无法启动的。要是强行拆机,会导
致里面的一切存储被永久删除。
嗡地一声,这台老爷机启动了。等了六七分钟,桌面才完全显示出来。老张一边和互联
网相连,一边打开了微信。“我这里有个内部通讯网络,是受防火墙保护的,你能进来
建个ID吗?”
虽然红酒的事让老张疑惑不解,他还是不能就此放弃。王秀才之前不是夸过海口吗?正
好... 阅读全帖 |
|
i***1 发帖数: 2534 | 33 这个装一个backgrounder就行了吧?
我经常一边用pptv,yourtube,qq阅读 之类的下载,一边上网。。。
就是我用的ipad 1,并行程序太多,内存会有问题,可能ipad 2会好一些? |
|
a****a 发帖数: 5763 | 34 他什么高工艺的
估计就是个土鳖phd,拿workstation算过点小东西,大型的并行程序估计都没run过
POWER早先的性能一直很好,但是IBM工艺不是很好,然后设计也有问题,根本就不是
能给desktop/laptop用的cpu, apple等了两年也没看到希望,只好转intel
ibm估计早就也不想给apple做cpu了,纯粹是赔钱赚吆喝 |
|
n*******l 发帖数: 2911 | 35 就我自己的经验来看,很多时候高配iMac和15寸MBP性能差不多。
我的27寸iMac是四核i7CPU,32GB内存,1TB fusion drive, 我的
15寸MBP是四核i7 CPU,8GB内存,256GB flash 存储。它俩跑
Matlab计算大量FFT时,耗时差不多。
这个也可以从Benchmark结果看出来。
http://browser.primatelabs.com/mac-benchmarks
当然,如果是两核MBP或者MBA跟四核iMac比,运行并行程序时,差距
可想而知会比较大。 |
|
b***n 发帖数: 53 | 36 说了半天, 给个程序员不应该写并行程序的理由? |
|
T**********n 发帖数: 480 | 37 不值,并行程序编码调试都麻烦
这样的一锤子买卖在系统或者编译的层次做才有效率 |
|
T**********n 发帖数: 480 | 38 你说的没错呀,但这是说为什么要让机器快
讨论到怎么才能快起来的时候
我觉得不能通过让所有程序员都写并行程序来提速 |
|
k********e 发帖数: 702 | 39 看,我没说错吧?
除了你明白,其他人都以为一个物理CPU就没有并行能力。
把4核CPU不当回事。 |
|
M*****a 发帖数: 2054 | 40 cuda对于存在数据依赖的情况下的并行化并不好 |
|
k****s 发帖数: 162 | 41 对,process是每个node上的,
可是我觉得上面两种情况,运算速度都是一样的吧, 因为两种情况实际都调用了10个
cpu,
所以跑完一个并行程序的时间应该是一样的吧。
|
|
w***g 发帖数: 5958 | 42 mpich或者openmpi都行吧。我自己不喜欢openmpi,因为opnempi假设cluster中只运行一
个MPI程序,用轮询的方式等待I/O,一上去就会把CPU耗光,如果系统中同时还有别的j
ob在跑的话就惨了。
如果你目前只有裸机的话那就用rocks,凑活着还可以用。 |
|
a***n 发帖数: 404 | 43 这个装上之后是只能搞MPI程序开发吧。要把几台电脑搞成MPI运行环境,是不是还要装
些其他什么东西?? 比方运行管理之类的东西?类似 torque 之类的?否则即使我写
了些mpi的程序,而且手头也有很多电脑,也没法让他们都充分用起来吧。。
rrdw. |
|
p*******r 发帖数: 475 | 44 我个人倒是觉得并行程序的软件工程是个有意思的题目。现在的问题是让人写好并行程
序都很难,让计算机写的话个人觉得很难有大的突破。
吗? |
|
r********3 发帖数: 2998 | 45 你开144个线程不就行了?
现在的操作系统都能够合理调度并行的线程到不同的core上。 |
|
t**t 发帖数: 27760 | 46 如果是千兆网卡,没有并行程序。
你就是1000台赛扬也不如一台i7 920 |
|
|
T*U 发帖数: 22634 | 48 那台电脑不能写和运行并行程序,告诉我。
1 core 都能 |
|
|
E*******1 发帖数: 3464 | 50 W系还是很牛逼的。1000多块钱W530比1000块钱的apple好n条街,1000块钱W是个
workstation,4核8G内存2G显卡,而且容易升级,跑matlab 8labs并行程序相当快。
1000块钱的苹果就是个只能运行浏览器的游戏机 |
|