![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| georain |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 28.11.2006 Где: Санкт-Петербург Репутация: нет Всего: нет |
САБЖ.
NUMA (ccNUMA) - это многопроцессорная архитектура с неоднородным доступом к памяти, альтернатива SMP. Сейчас в основном используется в решениях amd, но идёт к тому что в скором времени будет использоваться повсюду. Поэтому очень, очень важная тема по которой довольно мало информации. Предлагаю обсудить всё о NUMA применительно к c++. 1. Кросс и не кросс-платформенные API. 2. Выделение/использование памяти. 3. Привязка потока к процессору. 4. Оптимизация в коде. 5. Паттерны. Возможно обсуждение теории применительно к возможностям c++. Отдельно (оффтоп к тематике форума, поэтому только ссылки) интересует времена доступа и другие характеристики таких систем с большим количеством процессоров (> 2). |
|||
|
||||
| georain |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 28.11.2006 Где: Санкт-Петербург Репутация: нет Всего: нет |
По теме более конкретные вопросы.
Как сделать чтобы поток выполнялся только на заданном ядре или группе ядер? Как выделить память в локальной области заданного ядра/группы ядер/процессора? |
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
georain, Тема довольно актуальная.
Я юзаю MPICH. А какой смысл этой? Ну чтоб понять, нужно-ненужно, зачем, как, и для чего? -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| georain |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 28.11.2006 Где: Санкт-Петербург Репутация: нет Всего: нет |
||||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
Почитал: http://ru.wikipedia.org/wiki/Non-Uniform_Memory_Access
Но так и не понял, какое отношение это имеет к программингу? Добавлено через 1 минуту и 22 секунды
Да, уже почитал. Но зачем это программисту? -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| georain |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 28.11.2006 Где: Санкт-Петербург Репутация: нет Всего: нет |
Так, ребята, давайте не будет обсуждать тут что такое NUMA. Кто не знает, но интересно, идите учите. Тут прошу либо отвечать, либо задавать вопросы по NUMA применительно к программированию на c++. А отношение оно имеет такое - если вы напишете одно- или много-поточное приложение под стандартную архитектуру, то оно может сильно проиграть в быстродействии приложению оптимизированному под NUMA. А так как это архитектура завоёвывает позиции, имеет смысл думать в этом направлении. |
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
Хоть пару ссылочек дай. Тема интересная, но чёт я о тако раньше не слышал. Жду ссылок, и иду учиться... -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| georain |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 28.11.2006 Где: Санкт-Петербург Репутация: нет Всего: нет |
Добавлю. Библиотеки MPI и OpenMP - это средства обмена данными, а проблема numa - это использование памяти. Поэтому основное внимание тут нужно уделять выделению памяти и её использованию из разных потоком. Локальность памяти.
Также интересуют языковые методы борьбы с потерей производительности на поддержке кешей процессоров в актуальном состоянии (Cache coherent). Добавлено через 1 минуту и 52 секунды
Google -> NUMA. Тут нет ничего секретного. А вот про применительно к программингу в самом деле ничего особо нет. |
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
Это сарказм? Ну я внатуре впервые слышу!... -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
C++ к NUMA абсолютно не имеет никакого отношения
NUMA поддерживается через API системы Добавлено через 7 минут и 3 секунды
искал плохо NUMA for windows NUMA for linux -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| georain |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 28.11.2006 Где: Санкт-Петербург Репутация: нет Всего: нет |
Это не совсем верно. NUMA сделан так чтобы поддерживаться API системы так, как будто его и нет вовсе, чтобы весь спектр программного обеспечения работал на этой архитектуре. Но при масштабировании (увеличении к-ва потоков) стандартного приложения на такой архитектуре его производительность будет падать и в итоге упрётся в "узкое место" - шину. При правильной организации памяти на уровне приложения масштабирование может происходить без потери производительности. Добавлено через 3 минуты и 30 секунд Нет это не сарказм. Дело в том что это не так давно стало актуально (год, максимум два). На само деле есть много информации как это работает и "советов" как надо под это писать, но практических примеров нет. |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
georain,
еще раз говорю, С++ здесь не причем а API как раз причем Это сообщение отредактировал(а) MAKCim - 25.6.2008, 16:11 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| georain |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 28.11.2006 Где: Санкт-Петербург Репутация: нет Всего: нет |
||||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
ну если только в этом смысле в остальном API, без него ЯП не поможет в Linux, к примеру, есть два системных вызова для работа с NUMA mbind() и set_mempolicy() Это сообщение отредактировал(а) MAKCim - 25.6.2008, 16:40 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| georain |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 28.11.2006 Где: Санкт-Петербург Репутация: нет Всего: нет |
А, в этом смысле да. Хотя если пофилософствовать, что работает без API... Пока нашёл только одну библиотеку под linux http://www.x86-64.org/pipermail/discuss/2003-May/003528.html |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |