Я не знаю о IDL, но, конечно, это возможно, если у вас есть типы более высокого уровня.Например, вы можете удобно распараллеливать операции с массивами.Предположительно, это то, что означает «4200000 pts», хотя кто-то решил сделать графики действительно трудными для чтения.
Для сравнения, в C (с возможным распараллеливанием OpenMP) у вас может быть что-то вроде:
#pragma omp parallel for
for (int i=0; i<sizeof(B)/sizeof(B[0]); i++) {
B[i]-=A[i];
}
В языке более высокого уровня, таком как NumPy, Matlab или C ++, это может быть просто B=B-A
.Все это говорит, B=A-A
звучит для меня смущенно, как B=0
.
Вы просили параллельный оператор на любимом языке?Вот немного из Haskell:
import Control.Parallel
pmap _ [] = []
pmap f (x:xs) =
let rest=pmap f xs
in rest `par` (f x):rest
parOp op a b = pmap (uncurry op) (zip a b)
parAdd = parOp (+)
main = do
putStrLn$show ([0..300] `parAdd` [500..800])
Да, это все еще цикл.Множество операций (не операторов) является ключом к этому типу параллелизма.