调用函数的工作人员无法打印

时间:2018-10-02 07:23:05

标签: julia

我正在尝试在Julia中调试并行程序,并希望看到其工作人员的打印输出,但是它们似乎无法打印。我该如何“修复”此问题?

我的测试代码是:

function Test()
  print("Worker ",myid())
end

for i in workers()
  @spawnat i Test()
end

1 个答案:

答案 0 :(得分:2)

函数<label>Sports Option</label> <input ng-model="option" ng-minlength="3" formcontrol name="option" type="text" ng-pattern="{{pointPattern}}" required> <p ng-show="frmValidation.option.$invalid" class="input-error-message">Option is required</p> <p ng-show="frmValidation.option.$error.pattern">Not valid! Must end with ess or essence</p> 未在远程工作进程上定义,您未使用Test,因此它静默失败。使用fetch还需要在远程工作线程上加载myid()。最后但并非最不重要的一点是,远程工作程序上的标准输出在行级别上缓存,因此您需要使用Distributed而不是println

这是正确的代码:

print

在Bogumil的评论之后-using Distributed @everywhere Distributed @everywhere function Test() println("Worker ",myid()) end for i in workers() fetch(@spawnat i Test()) end 在这里,因此您的代码不会因为其他原因而无提示地失败。您将需要使用@async和@sync宏来收集数据:

fetch