我正在尝试在Julia中调试并行程序,并希望看到其工作人员的打印输出,但是它们似乎无法打印。我该如何“修复”此问题?
我的测试代码是:
function Test()
print("Worker ",myid())
end
for i in workers()
@spawnat i Test()
end
答案 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