Ocean Color Forum - Not logged in
I am using Seadas 6.4 & on a 64 bit linux box that has 4 processors. It appears that Seadas is only using 1 of the processors. Is there an environmental variable to set or other approach to get Seadas to take advantage of all of the processors?
The processing code is all single stream - 1 process, 1 cpu - there is nothing you can do to make the processing code use of more than one cpu per process.
However, you could run simultaneous processes.
There are some tradeoffs in the design of remote sensing programs. In principle, processing a single "image" could go faster if the work was spread across multiple CPU's, but at a cost of increased overhead, complexity, reduced portability, etc. Remote sensing processing streams typically involve processing multiple "images", so it is generally more efficient to run multiple copies of a simpler single-CPU program. This is known as a "trivially parallel" problem. One area where improvements can be made is for operations such as filters that can be done more quickly using GPU hardware (e.g., one CPU plus the GPU). Many steps in the pipeline are I/O bound. Adding CPU's will have minimal impact if the process spends much of the time waiting for I/O. There are systems that use one CPU for the main processing and add others to compress and decompress the I/O streams -- the additional CPU's don't end up doing much work, but overall things are faster because the main process spends less time waiting on I/O.
In practice, processing multiple images in parallel is not supported by current GUI environments so requires some shell scripts. If you are interested, you should look into the GNU parallel program. As an example, supposed you have downloaded a collection of .bz2 compressed images. You can run:
$ bzip2 -d *.bz2
which will take a long time, or:
$ parallel bzip2 -d ::: *.bz2
On a high-end system with fast I/O and multiple cores this will take much less "clock" time.