「新手入门」关于并行计算


#1

最近在尝试学习使用Julia开发并行程序,遇到了几个小问题像各位请教下

在这里我用了文档说明的一个宏@Threads,进行多线程计算
但在编译运行过程中,报错:这个宏没有定义,请求各位看下~


#2
using Base.Threads
help?> @threads
  Threads.@threads

  A macro to parallelize a for-loop to run with multiple threads. This spawns nthreads() number of threads, splits the
  iteration space amongst them, and iterates in parallel. A barrier is placed at the end of the loop which waits for
  all the threads to finish execution, and the loop returns.

julia>                                                     

#3

另外,我是通过Inteli J上的插件来编译运行的,请问是不是编译运行需要加额外的参数才行?


#4

你可以通过 Threads.nthreads() 看一下目前最多允许多少个线程。我这边默认是1个。

改变线程的上限需要在 julia 启动之前,设置环境变量

应该不需要其他额外的参数了,可用的命令行选项参见 入门 · Julia中文文档 后半部分。


#5

我这边这样改了之后还是显示没有定义

不知道是什么情况


#6

Threads.@threads 中的 @t 小写,用之前可以先在 REPL (命令行) 下面 ?Threads.@threads 看一下帮助,有帮助就说明你函数写对了。


#7

哦,原来如此。有点太粗心了。。。谢谢~