Система высокой нагрузки и многопоточность - PullRequest
0 голосов
/ 11 января 2011

Может кто-нибудь сказать мне, какой архитектурный шаблон или способ лучше всего использовать для многопоточности в High Load System?Я читал о подходе мультиплексирования, есть что-то еще?Благодарю.

1 Ответ

2 голосов
/ 11 января 2011

Я не совсем уверен, что вы подразумеваете под High Load System , но я предполагаю, что вы имеете в виду коммерческую серверную среду.Тенденция к созданию высокопроизводительных серверных чипов в наши дни - это множество реплицированных ядер, каждое из которых допускает некоторую степень многопоточности.Трудно сказать, какой метод многопоточности является лучшим , поскольку каждый из них предлагает преимущества, которые могут быть более подходящими при определенной рабочей нагрузке приложения.

Возьмем, к примеру, Sun UltraSPARC T1.Он имеет 8 ядер, каждое из которых может поддерживать до 4 потоков в одном общем конвейере.Ядро может переключаться между потоками без задержки.Этот подход называется мелкозернистой временной многопоточностью: мелкозернистой , поскольку потоки могут переключать каждый цикл, временной , поскольку потоки чередуются между циклами.

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

...