Языки программирования Hyper-Threading - PullRequest
2 голосов
/ 09 мая 2009

На каких языках можно реализовать гиперпоточность? Это только часть объектно-ориентированных систем или может быть реализовано в C?

Спасибо.

Ответы [ 2 ]

7 голосов
/ 09 мая 2009

Любой язык и среда выполнения, поддерживающие потоки, будут поддерживать гиперпоточность.

Гиперпоточность - это способ мультиплексирования ЦП между несколькими потоками - существует только один реальный ЦП, но он виден операционной системе как два ЦП, и поэтому на нем можно запланировать два потока. Любые зависания в ЦП в одном потоке (например, ожидание в памяти, длительные операции FPU и т. Д.) Позволяют ЦПУ выполнять код из другого потока.

Подробнее о гиперпоточности в Википедия .

0 голосов
/ 06 декабря 2011

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

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

Итак, ответ на ваш вопрос «возможно, но это зависит».

Что касается вашего другого вопроса, вы можете легко реализовать несколько потоков в C снова в зависимости от времени выполнения и поддержки компилятора. Например, расширения OpenMP http://en.wikipedia.org/wiki/OpenMP могут быть полезны для вас.

...