Потоки Java или Потоки Cuda - PullRequest
       4

Потоки Java или Потоки Cuda

1 голос
/ 09 февраля 2012

Я собираюсь начать проект с использованием параллельной обработки, и мне интересно, получу ли я дополнительную оптимизацию от использования потоков Java или программирования Cuda?Кроме того, я не эксперт с любой схемой, какой маршрут будет иметь меньшую кривую обучения?

Ответы [ 2 ]

4 голосов
/ 09 февраля 2012

Краткий ответ: зависит от проблемы, которую вы пытаетесь решить.

Длинный ответ:

Существуют некоторые фундаментальные различия между параллельной обработкой в ​​Java и Cuda.Большая разница в том, как задания упакованы и выполнены.В Java вы собираетесь написать программу, которая загружает данные, а затем вы будете использовать что-то вроде ExecutorService для выполнения ваших задач.В Cuda вы загружаете данные, но затем пишете фрагмент кода, который фактически выполняет выполнение (в Cuda это называется ядром).Звучит похоже, верно?Но не совсем.В Cuda задействованы дополнительные ресурсы памяти.Графический процессор имеет ограниченную память, поэтому ваше программное обеспечение должно сначала загрузить данные, затем упаковать их как часть ядра, а затем отправить их в графический процессор, который затем сохраняет данные и выполняет вычисления.Тогда ваше приложение должно получить результаты.Это действительно хорошо работает для некоторых вычислительных задач, но действительно неэффективно для других вычислительных задач.Все зависит от того, чего вы пытаетесь достичь.

0 голосов
/ 10 февраля 2012

Графический процессор полезен, если у вас есть простая задача, которую вам нужно выполнять много раз (тысячи и более). Вы можете получить доступ к графическому процессору с помощью OpenCL. Оболочка Java для этого - http://www.jocl.org/ Другие http://jogamp.org/jocl/www/ и http://code.google.com/p/nativelibs4java/wiki/OpenCL, но я их не пробовал.

Процессор намного лучше для программирования общего назначения. Вы можете быть удивлены тем, как много вы можете сделать в одном потоке, не говоря уже о Socket со многими ядрами.

...