Как писать кроссплатформенные параллельные программы на C? - PullRequest
2 голосов
/ 13 июля 2010

Я работаю над языком программирования. В настоящее время он компилируется в C. Я хотел бы иметь возможность включать средства параллельного программирования на родном языке, чтобы использовать преимущества нескольких ядер. Есть ли способ написания параллельных программ на C, который является кросс-платформенным? Я бы предпочел придерживаться прямой C, чтобы максимизировать количество платформ, на которых будет компилироваться язык.

Ответы [ 5 ]

5 голосов
/ 13 июля 2010

В зависимости от того, что вы хотите сделать, OpenMP может работать для вас.Поддерживается GCC, VC ++, ICC и др.

3 голосов
/ 13 июля 2010

Используйте библиотеку кроссплатформенных потоков, например pthreads .

C не имеет стандартной встроенной поддержки потоков или параллельной обработки.

0 голосов
/ 19 июля 2010

Если вы хотите в конечном итоге нацелить крупномасштабный параллелизм, взгляните на Charm ++ и базовый уровень переносимой машины Converse .Мы эффективно работаем на машинах, от многоядерных настольных компьютеров до кластеров, до суперкомпьютеров BlueGene и Cray.

0 голосов
/ 14 июля 2010

Библиотека GLib (из проекта GTK) имеет много полезных кроссплатформенных средств, включая многопоточность.

0 голосов
/ 13 июля 2010

"Straight C" не имеет понятия о многопоточности, поэтому я боюсь, что вам не повезло.Вам нужно будет найти какую-нибудь кроссплатформенную библиотеку потоков поддержки или перенести одну на разные платформы, которые вы хотите использовать.Думаю, pthreads - это хорошее место для начала, как и любое другое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...