In Linux and Mac we have 'fork' mechanism to add parallelization
to ICM scripts.
This option/command is not available on Windows platform due to OS
specifics.
fork is described here:
http://molsoft.com/icm/icm-commands.html#fork
The closest to what you need to is 'fork' option for 'for' loop
Example:
for i=1,Nof(t) fork 8 t # run in 8 cores, declare 't' as shared
table
# some long running code which calculates r_out
t.B[i] = r_out
endfor
Note that you can declare only table type as 'shared' between processes in 'for' loop.
So, if you on Mac or Linux you can probably adopt your code to take advantage of this, otherwise the cross platform approach would be less elegant and will require launching few background jobs (e.g: each job will calculate some row range of your matrix) and then read the result from temporary files from each job and assemble it together.