文章
技术

【v2ex】蒙特卡洛模拟是不是很难做并行计算

霏艺Faye 图书管理员
霏艺Faye  ·  2021年4月7日 图书管理员

原帖地址:https://v2ex.com/t/768540

以下是我的回复:

蒙特卡洛是一类算法,这类算法本身都是可以并行的
例如 spark的例子,并行计算 Pi的值
https://github.com/apache/spark/blob/master/examples/src/main/scala/org/apache/spark/examples/SparkPi.scala

不过,具体问题具体分析。
我们很多时候,并行是为了加速,而不是加量。
单机执行【或者单线程执行】,如果需要8个小时。
并行自然是为了8个线程同时跑,这样1个小时就可以完成了。
而不是,每个线程跑8个小时,这样就没有意义了。

如何实现呢?
可以参考这篇论文。
https://webdocs.cs.ualberta.ca/~mmueller/ps/enzenberger-mueller-acg12.pdf

A Lock-free Multi-threaded Monte-Carlo Tree Search Algorithm

我特别希望看到v2ex可以更多提出这样的帖子。我觉得对初学者而言,这类问题是比较常见的。而我们老一辈也希望回答年轻人的问题,让技术得以传承。


我年近半百,儿子都上大学了,仍然坚持每天看论文学习。活到老学到老。我很欣赏 这位同学,因为他学习了,否则不会提出这个问题。而且我也欢迎 大家提问,我会尽力回答。我觉得大家互相学习/讨论,才能自己进步,帮助别人进步。

不过,我比较忙,一般上来的时间也少。回答不及时是肯定的。另外,我也不是万能的,很多问题也回答不了。总之,鼓励大家多学习,多提问吧。

菜单
  1. 霏艺Faye 图书管理员
    霏艺Faye   图书管理员

    老了,老年痴呆中。。。

    忘了贴一个开源项目了

    https://github.com/cameron314/concurrentqueue
    

    这个是我用的非常多的一个开源项目。

    我觉得,年轻人学习编程。可以从阅读这个开源项目开始!

    另外读完以后,对解决各种并行计算的编程,有非常多的帮助。

    如果有需要,可以向我提问。

    另外,我觉得Spark非常优秀,大家也可以学习以下。