1
northisland 2015-05-12 13:47:13 +08:00
for循环并行处理
|
2
lucifer4he 2015-05-12 13:48:35 +08:00
openCL
|
3
xbaofeng 2015-05-12 13:53:29 +08:00
golang
|
4
antspeed 2015-05-12 13:54:22 +08:00
golang
或者一些语言都有并行库 |
5
MrJing1992 2015-05-12 13:54:50 +08:00
golang、rust
|
6
phx13ye OP @楼上各位
如果不局限于语言,有比较通用的? 我自己的理解, 多线程, fork-join, mapreduce等算不算? |
7
likuku 2015-05-12 14:09:56 +08:00
erlang, golang
|
8
askfermi 2015-05-12 14:11:45 +08:00
openmp...
|
9
spacewander 2015-05-12 14:14:03 +08:00 via Android
更少的共享变量和更少的状态
|
10
wy315700 2015-05-12 14:14:50 +08:00
CPU的性能由核心数和单核运算性能决定,
|
11
yakczh 2015-05-12 14:18:56 +08:00
php /java
|
12
yakczh 2015-05-12 14:19:24 +08:00
ruby/python都有GIL
|
13
clino 2015-05-12 14:29:01 +08:00
多进程也可以嘛
|
14
w359405949 2015-05-12 14:30:00 +08:00
CPU:线程,进程,OPENMP。
CPU+GPU:OPENCL,CUDA。 |
15
endrollex 2015-05-12 14:46:12 +08:00
我觉得有三种情况,
1手动写多线程 2用轻量级语法分配多线程,编译器并行优化 3单线程的某些语句自动优化成多线程 4函数式?这个不了解 |
16
CRVV 2015-05-12 14:51:03 +08:00
胶水双核...
一个莫名其妙的词,应该是当年什么人瞎写的一篇文章搞出来的 居然现在还有人在用 |
17
wy315700 2015-05-12 14:58:55 +08:00
|
18
loolac 2015-05-12 15:02:14 +08:00
erlang
|
19
Robling 2015-05-12 15:04:33 +08:00
openmp
|
20
winnie2012 2015-05-12 15:10:00 +08:00
二郎
|
21
robertlyc 2015-05-12 15:10:35 +08:00
erlang/elixir
|
22
CRVV 2015-05-12 15:12:18 +08:00
|
23
baozijun 2015-05-12 15:16:57 +08:00
Akka
|
24
wy315700 2015-05-12 15:22:12 +08:00
|
25
holulu 2015-05-12 15:37:42 +08:00 1
多核优化只能说是一种程序运作方式,由程序本身决定的。无论使用什么语言都可以写出使用单核或多核的程序,最终怎么跑还是得看程序开发者怎么写。
现在好像也没有什么技术能够将单核程序自动使用多核来处理,毕竟这个和具体的程序逻辑有关,如果这个自动判断的方法出现问题,那程序的执行就混乱了。 要利用多核,可以通过开多进程或多线程处理,这些都得程序开发者在程序中使用了相关的技术才能用上多核。而像协程和类似的轻量级进程或线程的并发机制也只是省去了开发者自行调度进程或线程的工夫,但程序设计上还是得真正利用上这些并发机制才能达到利用多核的效果。 所以无论编程语言有多好的并发机制,如果程序本身没有用上,那程序的主要业务逻辑也只能跑在单核上。对于有 GC 和自动异步 IO 的语言来说(如 Golang),如果程序逻辑没有用上这些并发机制(如 Golang 的 goroutine),则程序的主要逻辑还是跑在单核上,或许其他的部分像 GC 和 IO 操作则会跑在其他核上,但这对于多核的利用是有限的。 所以最后还得程序本身的逻辑决定了多核的利用。 |
26
1ternal 2015-05-12 15:39:10 +08:00
二郎
|
28
jy01264313 2015-05-12 16:06:38 +08:00
scala
|
30
yyw 2015-05-12 16:53:03 +08:00
erlang 和 golang
|
31
hepin1989 2015-05-12 17:54:22 +08:00
还和写软件的人有关
|
32
davidlau 2015-05-12 22:23:18 +08:00
函数式编程的特性:不可变量Immutable var,高阶函数、闭包,尽量少的状态变量, Map Reduce Filter
函数式语言:Swift Scala Erlang Haskell LISP 附上最近写的2篇博文: 通过Swift学函数式编程 http://davidlau.me/2015/05/11/learning-functional-programming-in-swift/ 笔记:软件开发的转折——并行化 http://davidlau.me/2015/05/11/notes-on-The-Free-Launch-Is-Over/ |
33
zwzmzd 2015-05-12 23:29:00 +08:00 via Android
matlab这种矩阵运算
还有map,reduce这种批量型的 |