2013-11-13 3 views
1

Есть ли какой-нибудь инструмент, который может переписать двоичный код для меня, чтобы использовать графические процессоры, инструкции SSE или быть многопоточными? У меня есть программа, которая имеет однопоточность и имеет много запасных циклов, но у меня нет источника.Перезаписать бинарный исполняемый файл для использования GPU/быть многопоточным?

ответ

0

Для этой задачи нет общих инструментов, потому что для параллелизующего кода требуется понять это, за исключением тривиальных случаев, таких как циклы.

Есть инструменты, которые могут работать на уровне источника, чтобы сделать более или менее тривиальную распараллеливание, но как только код будет скомпилирован, вы потеряете много семантической информации.

Вы можете попытаться распараллелить его на более высоком уровне путем нереста нескольких процессов.

E.g. если этот двоичный принимает параметр п и его время выполнения линейно относительно п то нереста P процессов могли в лучшем случае разделить время работы на р.

Конечно, вы должны убедиться, что эта программа не выполняет действия, которые не совместимы с распараллеливанием, потому что вы действительно можете испортить вещи: представьте, что эта программа использует файл для хранения временных данных, запуск двух экземпляров, вероятно, приведет к повреждению файла.

Поэтому перед попыткой запуска параллельных экземпляров осторожно определить периметр двоичного файла: файлы, базы данных, системные ресурсы (мьютексы, семафоры ...). Если вы используете файлы, расположенные в одной папке, вам придется дублировать двоичный файл в папках p.

+0

Спасибо, прагма. Я предполагаю, что в коде есть петли и что они потребляют большую часть времени, надеясь, что кто-то написал что-то, чтобы реорганизовать их. – OneSolitaryNoob

+0

@OneSolitaryNoob: Я бы не рассчитывал на это. :) И даже если вы найдете некоторые инструменты, которые обещают, что это будет очень осторожно, потому что возиться с бинарностью довольно смело. – Pragmateek

+0

Я выглядел совсем немного, есть поле под названием «бинарная оптимизация», но похоже, что в последнее время у него не так много импульсов. – OneSolitaryNoob

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