thanks for the response. I will give 1.3 a try.
as I said, I am a beginner so I wish someone can provide a little more detail or sample codes which can really save my day.
here is my task: Suppose I need to continuously and simultaneously process some data for five different cities and data comes in real time , but not at the same time. so I designed a simple process to detect the availability of the data and process the data if available and start over again.
x = 5
@everywhere using Pkg;
@everywhere using Pkg.activate("./julia/myenv")
@everywhere using …
@everywhere function isavailable(cityname::String)::Bool
@everywhere function func(cityname::String)
remotecall(func,workers()[i], cityname[i]) ;
as you can see, my code is just plain Julia code with no macro and other advanced features. I can run this simple code with no issue, but the issues that Julia does not use up all my cores (based on the CPU usage and measured time to complete the data processing). To be specific, if I run it in the main process with no distributed feature, processdata only takes 3-4mins, but once distributed, it take 30mins to complete even only one worker is running . so clearly each worker is limited to small set of cores (i think it is just one because task manager shows only one core being busy)
I always assumed that under multiple processor setting, Julia will optimize the CPU resources for each worker which means if I have only one worker, it should have all the resources, but once I start multiple workers, they will share the resources based on some type of load control (since I have no way to specify number of cores for each worker).
I am not sure how to use multi-threads feature in my task. based on my sample code, any suggestion will be greatly appreciated.