我最近问了一个关于并行编程算法的问题,由于我沟通意图的能力很差,因此关闭得非常快:
我最近也问了另一个问题,具体来说:
另一个问题是关于map reduce,以及mapreduce是否是并行编程中某些其他概念的更具体版本.这个问题(关于一个有用的并行编程算法)更多的是关于并行编程的整个算法系列.你不得不原谅我,因为我对并行编程很陌生,所以也许MapReduce或更通用的mapreduce形式是"唯一的"并行编程结构,可用,在这种情况下,我为我的无知道歉.
我一直在学习mapreduce算法以及它如何可能扩展到数百万台机器,但我不明白在地图阶段之后如何对中间键进行排序,因为它将会:
1,000,000 x 1,000,000
:潜在的机器相互传递中间结果的小键/值对?这不是瓶颈吗?
我有点困惑为什么同步调用与异步调用不同,因为从来没有"立即"响应,它仍然需要一些纳秒或毫秒?
我正在编写一个程序,可以有一个列表或一个字符串作为参数.如何在Erlang中以编程方式区分字符串和列表.就像是:
print(List) -> list;
print(String) -> string.
Run Code Online (Sandbox Code Playgroud) 我想知道当嵌入到java代码的clojure代理中时是否有任何clojure代码或宏不起作用,例如:
(proxy [Some Java Interface] []
(some Java Method [args]
...
Clojure code
...
)
)
Run Code Online (Sandbox Code Playgroud)
或者,我是否只能在代理中嵌入对Java函数的调用?
我试图在clj文件中使用warn-on-reflection.我写的时候:
(set! warn-on-reflection true)
Run Code Online (Sandbox Code Playgroud)
:ns声明后我收到错误:
java.lang.Exception: Unable to resolve symbol: warn-on-reflection in this context
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么?
我试图了解Clojure层次结构是如何工作的,使用derive和is-a?结构体.我不确定如何将这些用于我的程序中的地图和记录.有没有人用过这些?
我希望能够使用关键字参数调用clojure函数,如下所示:
(do-something :arg1 1 :arg2 "Hello")
Run Code Online (Sandbox Code Playgroud)
:这是可能的,而不必做:
(do-something {:arg1 1 :arg2 "Hello"})
Run Code Online (Sandbox Code Playgroud)
:我还可以使用:pre pre-conditions来提供somse类型的验证,以确保包含所有参数吗?
我想知道如果我生成的所有Java代码都包含调试信息,那么会有多少性能损失.如果没有太多的惩罚,那么我可以做一些事情,比如在需要时在生产中获得非常有用的信息而无需重新编译.
对于我必须完成的许多任务,我发现自己必须在使用Linux中的Shell脚本或Java或Groovy等编程语言之间做出选择.有没有人有关于如何选择一个而不是另一个的经验?为什么?
clojure ×4
java ×2
asynchronous ×1
erlang ×1
hadoop ×1
mapreduce ×1
scripting ×1
shell ×1
synchronous ×1