o**2 发帖数: 168 | 1 我完全没有被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追求的重点是降低程序员写并... 阅读全帖 |
|
o**2 发帖数: 168 | 2 这个非常感谢你的忠告,真心的。多数时候光技术是不行的,重要的是不能逆大众的潮
流。
your project by checking your code style instead of spending a good amount
of time to read the glory details. You'd better to learn those coding style
check tools. |
|
o**2 发帖数: 168 | 3 即使同一个thread,如果你在constructor里call其他object,然后那个object又
access回来,还是有拿到一个incomplete的对象的机会的。在并发下,可能性就更大了
一点。
我说的“instance变量都guarded by a lock"是引用原书,是有context的,就是以第
三章的标准去衡量我写的Predictor。如果变量都guarded by a lock,那意味着别的
thread不可能拿到一个incomplete的对象(即变量)。
我的确没有考虑到子类继承,一是我写的Predictor没有子类,二是考虑子类的话,那
复杂度就大了,我估计基本没有什么原则上安全的东西了。我就撤退了,留给你和发考
题了 :)
reference,
cass |
|
o**2 发帖数: 168 | 4 抱歉,我几乎霸占了帖子,这个应该是问楼主的,帮你顶一下!
楼主出来之前,我就帮着回答一下:1,不是,一次一个请求;2,没有;3,没有。 |
|
t***a 发帖数: 416 | 5 这个就不想了。。。。anyway,很赞你先前帖子里的那句,可以降级程序写并发程序的
门槛
加油啊 |
|
s******e 发帖数: 493 | 6 Haha... that makes my day... As you wish, I will quit. but unfortunately,
not that "silently". |
|
l*******m 发帖数: 1096 | 7 good question. it should be a machine learning service.
predict function should be thread safe. the constructor would be the model
training part. in addition, predict function has nothing to do time and
order. therefore, i think the design could be lighter |
|
l*******g 发帖数: 82 | 8
我有一个200行的matlab code,由于数据量比较大,有几个百万量级的循环,运行时间
也比较长(几天),我32G内存已经不够用了,不知道转成C或者java是不是有帮助?目
前........
java,c都可以的。主要在于你怎么写代码了,如果可以的话,最好不要把数据一次读
入内存,可以采取用多少分析多少。
java的话比较方便,因为有很多数据结构可以用,还有内存管理。而且可以用多线程,
并行处理。
而c的话,如果你又足够信心来保证内存释放没有泄露的话,并且自己完成一些需要的
数据结构也是没问题的,而且根据我以前用c做基因数据分析来说,速度比java快超很
多,大概只用1/4时间。 |
|
b******y 发帖数: 9224 | 9
是的,server side有大容量并行处理,或者data analysis等很多可以搞的。总觉得
app是个gimmick. 发展余地不大。 |
|
|
h********n 发帖数: 17 | 11 公司总部在波士顿城里,同时在欧洲、北美和南美等多个国家
运作。
该职位参与开发智能化的实时在线广告购买与投放系统。系统
运行将运行于Linux Cluster, 需要日处理3 Billion以上实时
广告请求,需具有高度并行处理能力、可靠、可扩展。
公司提供H1B和绿卡申请,从Intern到高级软件工程师都欢迎咨询。
直接站内邮件即可,谢谢! |
|
y**b 发帖数: 10166 | 12 1. 多谢提醒,计算本身的稳定性是前提条件,不稳定的话进行比较就没有意义。
我的测试里面稳定和不稳定的情况都有(汗!), 这下问题清楚多了。因为非线性
模型的缘故,实际步长比用线性近似估算的步长要小不少才能稳定。除了从后处理
图像和能量角度检测稳定性之外,有没有其他什么办法?
2. sin/asin一类函数用得很频繁,这类函数在角度极小的情况下似乎比较敏感。
其他情况倒没有。 |
|
t****t 发帖数: 6806 | 13 不是说fortran就比C快, 而是fortran这语言本身的限制比较多, 因此编译器比较容易
优化甚至进一步作并行处理. 不灵活当然就可以快.
现在很多特性被C借去了, 比如说C99的restricted修饰词就是从fortran借来的, 因为
fortran缺省就是restricted. 这是fortran高性能的来源, 而不是上面有人说的什么所
有调用都是reference, 跟这个没关系. 两个语言的性能差的确是在缩小. 但是问题是,
以前的计算程序都是fortran的, 数量太过庞大, 不可能全部转换成C重写, 何况C本身
没有速度优势.
另外现在计算机比以前复杂多了, 一般经验的程序员写汇编几乎不可能拼过编译器. 这
条路很难走通了. 所以作计算仍然是fortran第一, C靠后站. |
|
z****e 发帖数: 54598 | 14 就是不考虑稳定性,赌博的心态去对付每一张单
而不是反过来,以对人民负责的态度去对付每一张单
对于他的系统来说,丢一张单无所谓
但是做平台系统的,任何一张单丢了,任何一个transaction错了
都会引发很严重的后果,当然绝对不丢单是不可能
但是要将这个错误的可能性降到最低
你想想nasdap要是把你送上去的一个request给搞错了会有什么恶果?
他很适合做山寨的抢票插件
各种考虑都很恰如其分地满足了山寨插件对于时间和latency上的考虑
他说了半天throughput,其实跟throughput一点关系都没有
一直说的都是latency,一直在计算每一个transaction所需要的时间
每一个步骤所需要的时间,这是哪门子throughput?
throughput都是说要把带宽,并行处理的数量给提升上去
什么时候见过提升throughput拼命去缩减每一个步骤所需要的时间了?
那是latency,但是抢单的,山寨的那种抢票软件,会有这个考虑,而且很需要这个
你慢一步把request送到平台系统,人家就把票给抢走了
所以魏老师应该去给各个山寨插件做指导
教教他们怎么去抢单,做一个... 阅读全帖 |
|
c******n 发帖数: 16666 | 15 说来比较悲催 非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
... 阅读全帖 |
|
g*****g 发帖数: 34805 | 16 这些在异步情况下,虽然还是不能做到全局最优(因为有联票,有并行处理),但是可以
做到接近最优。实时就是吹牛。 |
|
L*****e 发帖数: 8347 | 17 嗯,netflix当前阶段的业务还是比较适合形成它倡导的highly aligned, loosely
coupled的project ownership。用他们这阵子讨论的话题来套就是,各个projects之间
的关系是弱耦合或者无耦合,比较适用于并行处理。。。 |
|
c*****e 发帖数: 3226 | 18 string 本来就是 text processing 为目的的, 可是 erlang 做并行处理主要是 raw
binary data, like video, audio. |
|
w***g 发帖数: 5958 | 19 1. JVM和java-interoprability,兼容工业界主流,VC/funding agency喜闻乐见。
2. 打functional的旗号,符合大规模并行处理的潮流,VC/funding agency喜闻乐见。
3. 高大全,multiparadigm,VC/funding agency喜闻乐见。
4. 创始人根正苗红,VC不知道,funding agency肯定喜闻乐见。
至于出来的语言是个什么样,VC/funding agency反正都不懂,有了钱自然可以招到大
批学生做苦力,啥feature都可以往里面塞。从这个角度一看,一切又似乎都可以解释
了。语言学几乎就是CS里的历史学,早就是一个半死不活的状态了,此人能搞到2.3M欧
元的funding,Odersky绝对有他牛B的一面。
当年scala还有.net版的。估计起家的时候没少拿微软的钱。11年搞到大笔政府funding
后12年立马倒戈drop .net支持,即使有大笔钱可画也不在没有前途的方向多花一个子
,眼光犀利做事干脆怕是很少有人能比吧。 |
|
m********t 发帖数: 13072 | 20 他是remote; 你是local
---并行处理 |
|
z****e 发帖数: 54598 | 21 我一开始就是从降低复杂度入手解决问题
其他人多数是并行处理解决,这个不改变复杂度,但是还是会快
而你用的恰恰是最愚蠢的方式,以更换语言来彰显个性
那人类发明各种high level的语言是为了啥?
你回答这个问题,如果单纯追求效率,什么fp,oop都可以统统去死了
可现实偏偏就不遂你意,人家压根就没有问你用c如何写
你吭哧吭哧一顿写,你无聊不?
你用了错误的时间做了错误的事,还自以为是 |
|
z****e 发帖数: 54598 | 22 既然“建模要周期性的重复进行”
那这个怎么会对latency比较高呢?
你需要的应该只是一个异步构架吧?
需要能够迅速响应你的请求,而非长时间石沉大海一样的无影无踪
能够告诉你,它在working
vert.x配合rxjava应该够你用了
akka我反正当时用得很痛苦
scala一直给我感觉不是那么容易搞
另外你的数学模型处理本身也需要一个接口
还有楼上说的数据传输可能会成为瓶颈
vert.x的设计可以当一个司令部用
最近有个年代古老的卡通寄生兽有看不?
那个卡通大boss就是一个寄生兽头部控制四肢寄生兽的一个东西
如果是我来做,我就用vert.x当头
然后控制其他部位,每个部位写一个mod,然后deploy |
|
c******o 发帖数: 1277 | 23 其实error handling, 尤其是可能多个错误的parsing, 我觉得最好的是用FP的
applicative functor.
1. 可以并行处理,任意拆分组合。
2. 可以回复多个错误,不会在可恢复的错误停下。
3. 可以一直传递下去,不会有side effect. |
|
d******e 发帖数: 2265 | 24 比如我发出1000个web crawlers function that return futures.
要等他们结束,看多少个成功的。比如下面。
val keywordCountsFuture = Future.sequence(testItems map {
item => cmpKeyword(item.id, item.siteId, "NextGenAll")
})
Await.result(keywordCountsFuture, 30 second)
现在遇到exceptin没有处理就挂在那里。怎么破? |
|
|
|
n******7 发帖数: 12463 | 27 那这些年SMP普及了,算不算产生了对并行处理的新需求? |
|
n*****t 发帖数: 22014 | 28 憋了半天实在忍不住出来说几句:
楼主显然对 js 很不熟,既然这样啥玩意乘手就整啥玩意,弄一堆歪七歪八的 js 还不
如出门找蟒蛇帮忙,说不定效率更高。其实楼主这情况,干脆 python 离线 parse 算
了,算完扔 DB 里。
说到 node 的并行处理,如果是需要计算资源的可以考虑开 cluster。比如我现在计算
一堆 jpg 的 phash,一堆 worker 领了任务自己算球去,需要注意的是别俩傻老爷们
跟一个小妞较劲。换一个场景,jpg 取 exif 存到 db 去,这玩都卡在 io,开再多
process 也没用。 |
|
k*****3 发帖数: 226 | 29 不用multidict的话,如果不并行处理,把key变换下
def to_dl(lt):
ddl = defaultdict(list)
for t in lt:
if t[0] in ddl:
newkey = str(t[0]) + '0'
cnt = 0
while (newkey in ddl)
cnt = cnt + 1
newkey = str(t[0]) + str(cnt)
ddl[newkey] = t[1]
else
ddl[t[0]] = t[1]
return dict(ddl) |
|
f*********e 发帖数: 8453 | 30 用python硬写一个简单的cgi,不用任何framework比如django。就是并行处理一些文本
。要在结果上加一些全局信息(metadata)。这些信息从数据库提取,但是基本几个月变
一次。所以不需要每次都去连数据库导致影响cgi的响应速度。这种情况怎么读取这些
meta比较
好? |
|
|
c********w 发帖数: 308 | 32 加了Xmx和concurMarkAndSweep..多线程还是不行。网上查了下这种情况也不少,可以
是运算不够复杂,不足以掩盖threading overhead...
现在多进程的做的差不多了,就是你前面说的python break up input into multiple
chunks 然后启动多个Java进程并行处理,最后write to separate files. Python再合
并成一个。效果不错。估计就只能这样了。不知道怎么再调多线程了。。 |
|
a*****t 发帖数: 81 | 33 此文的研究结果看起来很符合常识, 但经验告诉我们常识常常是错误的,
此文很容易让人问起一个问题就是 brain 的并行处理能力到底有多大?
Dear List Owner / Moderator,
Kindly share the following Brain Imaging experiment with the list
members.
A thinking mind cannot feel.
A thinking mind cannot intensify / sustain any emotion.
Emotion can intensify / sustain only when visual ( and verbal )
processing slows down ( stops / freezes ).
Experiment:
Subjects (preferably actors specialising in tragedy / tragic roles )
will be asked to watch a silent video film showing |
|
l***y 发帖数: 4671 | 34 用 Rmpi + OpenMPI 做 master/slave 相当爽啊。相比之下,用 C 写 mpi 调用 R 的
主要问题是传复杂的数据结构是比较折腾。
cluster 上跑 matlab 的问题有俩:一个是很多 cluster 不支持 matlab,起码经常不
支持自己要用的那些 toolboxes;另一个是往往买不起那么多的 license,极大地限制
了并行的规模。 |
|
K****n 发帖数: 5970 | 35 我其实特别想干的事儿是,用c写,socket通讯,在一个gpu cluster上,把常用
machine learning算法都并行实现一遍,再想办法用web service给expose出来,要存
数据的话都用in memory db
啊~~太爽啦~
就是不知道有什么用,估计这辈子是没机会了 |
|
s******y 发帖数: 17729 | 36 这个楼上都说了
还有具体看你拿到哪儿用,拿回国用,co,放在第一,基本上和单独一区别不大(相对
于在美国来说,可以忽略)
两人co或者3人co还好,树叶有专攻,你懂滴,老板为了快,不会让一个人去学太多,而
是并行处理。如果大于三人co,通常说明这个PI有以下问题:
小作坊,自己没法玩的转(包括缺钱,缺人手,缺技术)
大作坊,PI人品坏,喜欢搞阶级斗争让学生千老相互牵制内斗
人员流动性大,一个project没干完就跑了(大文章,没干完就跑了,要么PI人品坏让人
呆不下去看着桃都没法摘,要么缺钱)
.................
欢迎补充
在生物这个烂坑里面混过的人,一看文章co的情况和内容,可以把很多幕后的东西猜的
八九不离十。 |
|
n******7 发帖数: 12463 | 37 说你能力不如别人不叫人身攻击
其实就是把10个你那里并行处理也做不出来
你自己不承认我也没啥要哑口无言的
达克效应的例子我见过很多 |
|
y**i 发帖数: 86 | 38 用fortran,
用arpack包,不用存矩阵,
中间费时的是矩阵和矢量相乘,并行处理,
低精度和计算少量本征值的话用时很少。
eigenfunctions
网 |
|
c*******n 发帖数: 112 | 39 如体,
看到很多Paper上都说是O(log n)。但是我认为是O(n)。原因如下:
如果有计算机可以并行处理,当然我们可以认为运算时间是O(log n)。而实际上
总的比较次数还是n次,因此算法复杂度仍然是O(n) |
|
c******k 发帖数: 1140 | 40 简单点说,执行部分是每次把abcdefg这8个数带入一个矩阵,然后和已知矩阵们做相乘
运算,长话短说最后只得到一个数,当然全部for loop 结束后,会产生N多的数。这个
执行部分还要实时从N多的书中求出最小的10个数。
也就是程序执行完毕,这最小的10个数也产生了。 |
|
c*******h 发帖数: 1096 | 41 for循环间没啥关联的话就将其中一层循环分成30份每个CPU算一份就好了。。。 |
|
t***s 发帖数: 4666 | 42 have to use parallel toolbox. multiple instances slows down matlab
for big. |
|
l*****i 发帖数: 3929 | 43 先尽量把你的循环vectorize然后在PC上试试?
也不 |
|
|
s**********e 发帖数: 591 | 45 Never use MATLAB to do for loop, especially extensive for loop. Matlab is
fast for vector processing. If you want to do for loop, use C++. |
|
c******k 发帖数: 1140 | 46 但是最终我还需要从abcdefg中分别选出一个数,作为我的运算结果。不用loop,都向
量化了,能从abcdefg中选出数来吗? |
|