t***n 发帖数: 46 | 1 power measurement 监视电压和电流。通过I2C串行口arduino软件进行配置。
请私信我.
谢谢 |
|
t****t 发帖数: 6806 | 2 各种高速串行线的底层PHY其实都是一样的, 甚至包括芯片间的高速互联. 现在PHY的IP
都是通用的.
光纤的电信号层也一样. 不过silicon photonics还没有大规模开始用, 如果外接光模块
成本就高了.
速度不同只是时钟的差别而已. |
|
t****t 发帖数: 6806 | 3 不行的, 高速串行通信里, 距离是一个重要的指标. 线一长就连不上了. |
|
v**o 发帖数: 4956 | 4 Sas是串行SCSI硬盘,一般是10K~15k转的高速盘 |
|
V**0 发帖数: 889 | 5 看并行到啥级别,likelhood那一步其实可以,这就已经很厉害了
当然,总体大的步骤而言MCMC是串行的 |
|
y**b 发帖数: 10166 | 6 呵呵,理论上是没法超过100%的,实际上90%的效率已经很惊人了,规模大的时候更是
不得了。除了问题本身和软件环境,跟具体的supercomputer架构也有关系。
比较快速高效的开发办法是直接使用C++ Boost提供的mpi库(就是一层包装,但非常可
靠),比调用那些原始的mpi函数好百倍。当然运行的时候得有这些库支持,这倒不是
啥问题。
结果不稳定?也是要跟串行结果比较的。 |
|
n******7 发帖数: 12463 | 7 就是跟串行的比较
1个core 要200h
64个core 只要1h
明显不对
不过paper已经发了
也没人管了
我感觉并行最关键的还是问题的领域
我们领域的问题基本都是高度可并的
其实单机并行我已经觉得很爽了
现在版上的千元双路机都有16核32线程
单机并行就可以缩短运行时间一个数量级
很客观了
也准备找机会玩玩MPI,一直对分布式计算很有兴趣 |
|
|
d***a 发帖数: 13752 | 9 CPU的benchmark分数一般不好相加。你想问的,是用双CPU能不能有两倍的加速比吧,
也就是执行时间减少一半。
首先假设用的是parallel workload。一般来说,会差一些,因为很少有完美并行的程
序。串行的执行部分,同步,数据交换,这些因素会降低并行效率。但有些特殊的情况
下,会有超过两倍的加速比。 |
|
y***m 发帖数: 7027 | 10 ms 比较容易出问题,比如 utraedit当打开好几个实例后,某些实例只能加载有限几个
文件
,是串行没做好?
thx! |
|
b***i 发帖数: 3043 | 11 某个类的文件本地读入和处理需要0.5秒,我就想能不能串行化,然后我直接读入。结
果发现,直接本地读入object需要1秒。下面就是代码,请问有没有办法加速?obj文件
一共几百k bytes.
public static Object load(String filename){
try {
FileInputStream fin = new FileInputStream(filename);
ObjectInputStream ois = new ObjectInputStream(fin);
Object obj = ois.readObject();
ois.close();
System.out.println("unserialized theQueue");
return obj;
} catch (Exception e) { e.printStackTrace(); }
return null;
} |
|
g*****g 发帖数: 34805 | 12 你这个看似应该直接上专用硬件,C写firmware。成本还低。
twitter每秒处理200K tweets,是几百个结点的并行处理,不是
单个结点串行每个tweet 5微妙。Java做不到那么低的延迟。
你的数据小,读写频度那么高,应该比较接近路由。 |
|
g*****g 发帖数: 34805 | 13 你这个看似应该直接上专用硬件,C写firmware。成本还低。
twitter每秒处理200K tweets,是几百个结点的并行处理,不是
单个结点串行每个tweet 5微妙。Java做不到那么低的延迟。
你的数据小,读写频度那么高,应该比较接近路由。 |
|
l*****o 发帖数: 473 | 14 我试着对楼主的方法进行点评一下,好像还有许多地方是可以提高的。
《《(1)将原来的逐行读取,逐行处理,改为先将每个文件的所有行读到一个新建的
DataStore 中。
这步是可以用memory mapped file进行提高的。如果单线程读取所有的文件,那么这部
分工作就变成串行化了。
《《(4)现在由于多线程异步处理,直接输出无法保证顺序。就先把这部分信息存储
到一个新建的 map 中,保存记录 ID -> data 的映射。当一个文件处理完了,才最后
按 ID 从map 有序输出到 XML 中。
为了保证顺序,其实还有其它方式可以处理的。比如,我们可以输出到不同文件中,最
后用脚本把所有东西重新拼成一个新的文件。 |
|
T*********g 发帖数: 496 | 15 他想问的是transaction isolation level。
假设同时有Transaction T1, T2试图读取并修改相同的row,ANSI定义了好像有四种,
1) read_uncommitted Trasaction T1修改但是没有commit的data会被同时进行的T2读
取,这个叫dirty_read
2) read_committed 只有在事务提交后,才会对另一个事务产生影响,并且在对表进行
修改时,会对表数据行加上行共享锁
3)repeatable_read T2始终读取的值在T2的范围内不会改变
4)serializable 完全串行
具体这上面四种隔离模式在不同的数据库里是不大一样的。我比较熟悉MYSQL,MYSQL的
2,4都可以保证你说的情况。 |
|
t**********1 发帖数: 550 | 16 goodbug设计了一个号称大并发的铁路订票系统。
不但做不到实时,还用Cassandra做message queue。
丫还没想到,这个message queue要按照时间顺序串行处理。就Java那个速度,100k/s
都难,吹了4个月,号称用6000台机器,就做了这么个东西,把Java系的脸都丢光了。
你们集思广益,帮丫做做也行。 |
|
G**Y 发帖数: 33224 | 17 好像那个user,是多余的,早成了麻烦。
忘记我这是从哪抄来得了。肯定抄串行了。
0755 |
|
b***n 发帖数: 462 | 18 没用过这个,不是很懂,有问题:
f2中应该锁t2_mutex 吧。
f1中 t1_ready = 1 在 if (1==t1_ready) 后面能行吗?这个没看明白。这样的会少一次的变量传递吧。
学习了。 |
|
d****f 发帖数: 313 | 19
只有锁同一个mutex,才有互斥的可能啊,锁了两个mutex就毫无意义了
一次的变量传递吧。
t1_ready=1表示t1的工作做完了,做完之后要用该标志量,解锁t2线程,如果不用标志量,
可能导致condion signal丢失的 |
|
b***n 发帖数: 462 | 20 t2_mutex 是我想岔了。
f1中 t1_ready = 1 在 if (1==t1_ready) 后面能,也就是说,每两次 (0==(it1 % N
))才能又一次进入 if (1==t1_ready),让thread sleep。不知道这个是不是你要求的。
当f2加入进来,每一个循环都t1_ready=0, 那么,f1可能永远也没有机会进入sleep。
不知掉这样的话他们交换的数据是否是相同步骤的。
当临界情况发生的时候,能满足你的需求吗?
而且,会不会两个同时sleep?这个我还没想好。
不过学习了一下pthread_cond_wait,很有意思的一个东西。 |
|
b***n 发帖数: 462 | 21 还有一个,看手册,pthread_cond_wait最好使用while等待,因为有suprise wakeup的可能,这样就需要再次进入sleep。你的if 等待被suprise wakeup后会进入下一轮计算,这样的话是不是就不是你要得结果了?
所以最好是两个thread有各自的if condition。
现学现卖,一起讨论吧。 |
|
b***n 发帖数: 462 | 22 总觉得你这个需要步调一致,对数据的互斥反而可以通过步调控制。不知道是不是这样
。 |
|
p******g 发帖数: 347 | 23 Check out the CountdownLatch in Java. it's just what you needed, and it's
fairly easy to implement it with pthread semaphore or what ever
synchronization stuff. CyclicBarrier works for you, too.
同步
tL2a |
|
m*******o 发帖数: 344 | 24 我有一个控制程序调用3个执行程序,本来是1执行完了做2,2做完了再做3
在别的平台上都正常运行,但是跑到我的ubuntu上编译运行,1,2,3一起执行了。也
就是说,不等1执行完,2就开始了。我在网上google也不清楚搜什么关键字,有没有大
牛指点一下? |
|
x****s 发帖数: 921 | 25 “一个控制程序调用3个执行程序”
There are millions ways to do that, you need give us more detailed info |
|
j********2 发帖数: 4438 | 26 如果你说的是用make来编译执行,那么make的时候可以加上-jN,比如-j4,来4个线程
一起编译执行。或许ubuntu为了性能考虑,默认开启了这个参数 |
|
|
b***i 发帖数: 3043 | 28 负责公司一个产品,需要设计一下系统架构。
目前,我们大概是用14MHz左右的68332,很艰难地加入了TCP/IP的一部分,异常艰难地
加入了文件系统。有个破网站粗略能显示一个网页。这个系统主要工作是串行通讯,还
要9bit的,要ADC测量一些模拟信号。退休老哥之前大概想增加到uClinux,可能加到16-
32M SRAM内存。
我看再增加功能是没戏了。我想直接上ARM9, dual core, DDR3 512M内存,600MH芯片,
SOC,SD card,1000M Ethernet,linux, 怎样?我选的ARM是Xilinx的SOC,Zynq-7000
有FPGA,可以增加各类硬件功能。
印度人说用Linux会有各式各样的问题。我持相反意见,我认为使用小众系统比如Ti的
OS才会出现各类的问题。 |
|
x*******r 发帖数: 6 | 29 数据类型:REAL (single precision)
我的程序是MPI fortran90,用的机器是IBM p690
编译:mpxlf90 (Fortran MPI Compiler),我在编译选项里加了-q64(Enables 64 bit
compilation)
程序里sorting这部分实际上还是串行程序,我把整个数据都集中到一个processor(每
个processor是8G内存)上来算。
再请教一个问题:我是个编程新手,一直不太明白64位/32位的系统的含义,像您说的
“64位系统的整数仍然是32位”,我就不太明白是什么意思?
以前搜索过,看到有人提到32位系统无法对2G以上寻址,所以像我处理的这种4G的就需
要64位。我就生愣愣的在我原先的编译命令上加了一个-q64。但是,我很想知道如果用
64位编译,我的程序需要做什么相应的变化吗?还有,这个32位/64位和精度有什么关
系吗?
再次感谢! |
|
P*****f 发帖数: 2272 | 30 目前64位系统中的标准是LP64,即:
int:32bit
long:64bit
pointer:64bit
数据类型:REAL (single precision)
我的程序是MPI fortran90,用的机器是IBM p690
编译:mpxlf90 (Fortran MPI Compiler),我在编译选项里加了-q64(Enables 64 bit
compilation)
程序里sorting这部分实际上还是串行程序,我把整个数据都集中到一个processor(每
个processor是8G内存)上来算。
再请教一个问题:我是个编程新手,一直不太明白64位/32位的系统的含义,像您说的
“64位系统的整数仍然是32位”,我就不太明白是什么意思?
以前搜索过,看到有人提到32位系统无法对2G以上寻址,所以像我处理的这种4G的就需
要64位。我就生愣愣的在我原先的编译命令上加了一个-q64。但是,我很想知道如果用
64位编译,我的程序需要做什么相应的变化吗?还有,这个32位/64位和精度有什么关
系吗?
再次感谢! |
|
x*******r 发帖数: 6 | 31
================================
总共有nx*ny*nz个数,这些数放在变量arr里,变量arr在module FIELD里。我要挑出第
kk大那个数,并把这个值赋给yy.
我编译用的是:mpxlf90_r -qsuffix=f=f90 -q64 -o 。。。。。。
(虽然主程序是MPI的,但是call这个select函数只是在一个processor里,所以这部分
和串行一样) |
|
o******r 发帖数: 259 | 32 我google到一个简单的uml design
就是轮询每张桌子,看能否满足指定时间的预订,
能就订上,并给个confirmation
这样太简单了吧?
如果是多个booking 操作同时进行,
加一个synchronization也可以了,
不过好象一般都是一个booking, 串行的. |
|
b***y 发帖数: 2799 | 33 ☆─────────────────────────────────────☆
codesyla (codesyla) 于 (Mon Apr 14 14:03:38 2008) 提到:
做嵌入式需要用到自己的调试程序(和目标板串行通讯,显示各种状态等),以前的版
本用VB做调试程序的界面,虽然简单,但是没法移植到linux下。改用Python做界面,C
做底层如何?Python开发界面方便吗?有没有什么好的教程和开发工具推荐,最好是一
个project能同时在win和linux用,不需要太多改动。谢谢了
☆─────────────────────────────────────☆
minos001 (俺姓牛) 于 (Mon Apr 14 17:12:16 2008) 提到:
帮顶一下,同问
☆─────────────────────────────────────☆
cavendish (享受生活) 于 (Mon Apr 14 18:11:52 2008) 提到:
可以试试PyQt
,C
☆────────────────────────────── |
|
b***i 发帖数: 3043 | 34 很多工业单片机都用9bit uart,这样,如果有一个字符高位为1,则表示这是一个包的
开始,而且低8位表示地址,区分多个设备。
我们组的小本用PC实现了一个这种设备的模拟器,就是把工业的私有串行信号标准变成
rs232,然后通过com1, 或者usb2com连到PC, 用程序来处理,返回信息给控制器。这
个工业的标准通讯速率是1200bps
问题,有一半的包会丢,而且程序是用C#写的,如果控制器也在同一台PC上运行,就根
本接不到任何信息。
我用C++试了试,很麻烦,调试的时候,每次waitcommevent后打印出来字符,发现9-
bit似乎和PC不兼容。
如果用odd, even , no parity,就不停出错。
如果用space parity, 在高位为1的时候,增加出现了F0, 1, E5, 三个字符,然后是
低位。如果察看错误,则错误的时间并不总是和高位为1的字符同步,有时校验错误出
现在高位为1 的字符之前,有的时候在F0, 有的时候在E5,总之乱七八糟的。似乎
windows的驱动程序或者可能就是16650A没有把校验错误和接受的字符同步纪录在FIFO
中。
大家有 |
|
t****t 发帖数: 6806 | 35 for t1 and t2 waiting each other, use pthread_barrier_t. see pthread
document.
同步
tL2a |
|
|
|
y**b 发帖数: 10166 | 38 用openmp并行化一个模拟程序,发现:
计算只要运行足够步长,openmp每次运行给出的结果都不一样,
而串行运算的结果始终一样。这正常吗?
直觉上openmp由于每次运行都采用不同的计算顺序(各线程的
先后顺序是随机的),从而可能改变误差的积累方式,一般怎么
处理这类问题?谢谢。 |
|
b***i 发帖数: 3043 | 39 串行通讯9600b/s应该不需要什么real time。这个行业不需要real time,当然如果是
realtime, 是个selling point。
这个FPGA至少200块,TI再贵不会比这个贵吧?就是不知道TI的软件技术如何?比如ide
如何?debug的方案如何?
Linux我看主要是用的人要多100倍呀。 |
|
d****i 发帖数: 4809 | 40 如果只是串行通信的话,什么OS都无所谓了,不过你是否要考虑将来功能的扩展呢?TI
的CCS还不错,基于Eclipse的定制的,可以用于TI的主打产品像MSP430, TMS320等等,
debug用第三方的JTAG就可以了。
ide |
|
b***i 发帖数: 3043 | 41 说的是最critical的就是串行通讯。但是为了支持TCP/IP,SD Card,文件系统等,所以
需要操作系统。
TI我们烙印想用OMAP 138,也是SoC,ARM + DSP,说用一个real time OS, TI的。我更
喜欢linux。
到底linux有什么问题吗?用在嵌入式,但其实是服务器,就是一旦在海底用了,就再
也见不到了。但是可以通过ftp来更新代码什么的。
TI |
|
y**b 发帖数: 10166 | 42 还真是没惹它,就是有这种客观需要,比如在supercomputer上并行5000个进程运行100
小时,每隔一小时root process从其他4999个进程合并一次数据用来输出,这个数据量
相当可观,如果不及时释放内存,则下一个小时计算时段内内存可能就不够用;如果
完全释放了就能顺利计算下去。因为数据之间有少许冗余,用unordered_set也是很顺理
成章的事情。而且这些数据都是oop的对象,不用stl来操作以及boost.mpi来串行化和
传递的话,其复杂程度太大。 |
|
z****e 发帖数: 54598 | 43 mapreduce只是一个概念
你完全可以把map改成sql
变成sqlreduce,其本质也是一样的
不过要上多线程,如果你不想串行执行的话
这是难点 |
|
Y**G 发帖数: 1089 | 44 还是用Java舒服
假定
SimpleFunctionTask -- 异步执行一个函数
SequentialTask -- 将两个task串行执行
CompositeTask -- 同时启动多个task
new SequentialTask(
new CompositeTask(
WAIT_ALL,
new SimpleFunctionTask(new Runnable() {
void run() {
useQuote = connection.getCurrentValue(USD);
}
},
new SimpleFunctionTask(new Runnable() {
void run() {
useQuote = connection.getCurrentValue(USD);
}
}
},
new SimpleFunctionTask(new Runnable() {
void run... 阅读全帖 |
|