2016-03-08 3 views
0

В настоящее время используется матрица JAMA.Многопоточная инициализация матрицы в Java

моя программа в настоящее время инициализирует LOT небольших матриц (размером 20x20 точек), а затем выполняет небольшие вычисления и считывает результаты.

Около 80% времени выполнения тратится на чтение и инициализацию матриц, и мне было интересно, есть ли способ сделать это многопоточным для увеличения скорости. (Я знаю, что есть такие вещи, как OjAlgo, которые отлично подходят для манипулирования матричными матрицами), но все, что я делаю, это инициализация матрицы и ее повторное чтение.

Если я использую другой пакет Matrix, он будет инициализировать матрицы с несколькими потоками или будет ли инициализация по-прежнему иметь однопоточность, но алготемы должны быть многопоточными?

ответ

0

Многопоточность «внутри» матриц не принесет никакой пользы для таких маленьких матриц.

Переключение на библиотеку, которая внутренне использует double [], а не double [] [], может иметь значение, но я предполагаю, что вам следует сосредоточиться на том, как вы (повторно) используете матрицы. Возможно, ваша программная логика может быть многопоточной.

Для очень маленьких матриц (2x2, 3x3, 4x4 ...) некоторые библиотеки имеют специализированные структуры данных и алгоритмы, которые могут значительно ускорить процесс.

Смежные вопросы