2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3
 
 Re: Какой процессор лучше для мат.моделирования?
Сообщение16.11.2016, 14:57 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Не хотите говорить - не надо. Нечего было тогда и в эту тему влезать.

 Профиль  
                  
 
 Re: Какой процессор лучше для мат.моделирования?
Сообщение03.01.2017, 20:03 


23/03/14
48
Dmitriy40 в сообщении #1130923 писал(а):
На указанном i7 под AVX можно в теории запустить 64 вычислительных потока (с FP32), а в GPU их всего 24шт, да ещё и частота их раза в 3-4 ниже CPU. Конечно если интегрированный GPU запустить в параллель к CPU выигрыш будет, но ... слёзы.

Получается, что если задача решалась в один поток на процессоре core i7, то после распараллеливания она будет решаться в 64 раза быстрее в предположении идеальной параллельности, например, на 64 000 подзадач?

Вдогонку: никто в Москве не желает продать работающий системник с core i7, 8 потоков?

 Профиль  
                  
 
 Re: Какой процессор лучше для мат.моделирования?
Сообщение04.01.2017, 03:53 
Аватара пользователя


07/02/12
1403
Питер
Стоит еще поколение указывать. Первые i7 имеют меньшую производительсность, чем, например, текущие i5/i3. А физические (да и логические) ядра не стоит называть потоками. И тем более, сравнивать их производительность с видеокартами в штуках.

 Профиль  
                  
 
 Re: Какой процессор лучше для мат.моделирования?
Сообщение04.01.2017, 18:30 


23/03/14
48
bondkim137 в сообщении #1181811 писал(а):
Стоит еще поколение указывать. Первые i7 имеют меньшую производительсность, чем, например, текущие i5/i3. А физические (да и логические) ядра не стоит называть потоками. И тем более, сравнивать их производительность с видеокартами в штуках.

А производительность разве не частотой измеряется?
Почему "физические (да и логические) ядра не стоит называть потоками"? Понятно, что потоков может быть больше, но речь же идёт именно о производительных потоках.
С видеокартами не сравниваю, видеокарты за счёт распараллеливания до многих десятков/сотен/тысяч подзадач выиграть могут, насколько я понял.

 Профиль  
                  
 
 Re: Какой процессор лучше для мат.моделирования?
Сообщение05.01.2017, 00:47 
Заслуженный участник
Аватара пользователя


30/01/06
72407
vladimir-2013 в сообщении #1181883 писал(а):
А производительность разве не частотой измеряется?

Далеко не только ей одной.

 Профиль  
                  
 
 Re: Какой процессор лучше для мат.моделирования?
Сообщение05.01.2017, 01:45 


23/03/14
48
Цитата:
Далеко не только ей одной.

А чем ещё (кроме кол-ва ядер, охлаждения, частоты RAM)?

 Профиль  
                  
 
 Re: Какой процессор лучше для мат.моделирования?
Сообщение05.01.2017, 01:49 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
А это уж зависит от выполняемой задачи.

 Профиль  
                  
 
 Re: Какой процессор лучше для мат.моделирования?
Сообщение05.01.2017, 02:47 
Аватара пользователя


07/02/12
1403
Питер
vladimir-2013 в сообщении #1181883 писал(а):
Почему "физические (да и логические) ядра не стоит называть потоками"?

Потому что архитектура современных процессоров давно является конвеерной. Грубо говоря, это означает, что машинный код раскладывается на более простые операции, которые раскидываются по конвеерам даже в рамках одной последовательности команд. Производительность выполнения при этом зависит в т.ч. и от того, насколько эффективно эти операции удается раскидать - т.е. чтобы разнотиповые конвееры меньше простаивали. Также используется технология MultiThreading, по сути представляющая из себя возможность одновременного выполнения двух последовательностей команд на одном и том же наборе конвееров - понятно, что эффективность данного подхода резко ограничивается, особенно если обе последовательности используют один и тот же тип конвееров. Эта технология в общем-то ничем не выделяется от иных оптимизаций, кроме того, что в системе виртуально удваиваются ядра - потому о ней люди больше знают, чем о других. Другими словами, перед тем, чтоб склонять слово поток, надо определиться, что вы под этим понимаете.

-- 05.01.2017, 02:54 --

vladimir-2013 в сообщении #1181980 писал(а):
А чем ещё (кроме кол-ва ядер, охлаждения, частоты RAM)?

С эволюцией процессоров можно отследить падение цены отдельных операций в тактах. Т.е. то, что когда-то занимало 30 тактов, потом стало занимать 10, 5, 3, а потом один (например, умножение).
Кроме того, появились SIMD-инструкции, вышеупомянутые конвееры, разложение CISC-кового кода в RISC, перестановка выполнения команд, предсказатели условных переходов и др. делающее оценку производительности достаточно сложной, не совсем линейной, статистической задачей, на практике, часто выполняющуюся эмпирически.

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

-- 05.01.2017, 03:05 --

vladimir-2013 в сообщении #1181883 писал(а):
за счёт распараллеливания до многих десятков/сотен/тысяч подзадач выиграть могут

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

Надо отдавать себе отчет, что производительность вычислительного узла - на самом деле есть величина векторная. И только из-за того, что в выделенном подклассе x86-процессоров дикие перекосы встречаются редко, как и в подклассе ARM-процессоров, или видеокарт - имеют место быть скалярные оценки в рамках похожего типа вычислительных узлов. Объективные в рамках собственной испорченности.

 Профиль  
                  
 
 Re: Какой процессор лучше для мат.моделирования?
Сообщение05.01.2017, 03:31 


23/03/14
48
Спасибо за подробные ответы.

Цитата:
Также используется технология MultiThreading, по сути представляющая из себя возможность одновременного выполнения двух последовательностей команд на одном и том же наборе конвееров - понятно, что эффективность данного подхода резко ограничивается, особенно если обе последовательности используют один и тот же тип конвееров. Эта технология в общем-то ничем не выделяется от иных оптимизаций, кроме того, что в системе виртуально удваиваются ядра - потому о ней люди больше знают, чем о других. Другими словами, перед тем, чтоб склонять слово поток, надо определиться, что вы под этим понимаете.

Если я правильно помню, MultiThreading = гипертрейдинг, т.е., пока "чипы" одной группы в ядре заняты чем-то одним, другие "чипы" этого же ядра заняты чем-то другим, потому есть впечатление удвоения ядер.
Цитата:
С эволюцией процессоров можно отследить падение цены отдельных операций в тактах. Т.е. то, что когда-то занимало 30 тактов, потом стало занимать 10, 5, 3, а потом один (например, умножение).

Получается, при одной и той же частоте более старый процессор может выполнять некие операции, например, за 30 тактов, в то время как более новый процессор уже выполняет те же операции за 5 тактов: вот и получается, что частота одинаковая, а скорость выполнения программы разная?

 Профиль  
                  
 
 Re: Какой процессор лучше для мат.моделирования?
Сообщение05.01.2017, 13:38 
Заслуженный участник
Аватара пользователя


30/01/06
72407
vladimir-2013 в сообщении #1181980 писал(а):
А чем ещё (кроме кол-ва ядер, охлаждения, частоты RAM)?

Не знаю, почему вы вычёркиваете количество ядер и частоту RAM.
Важны ещё частоты и ёмкости кэшей, устройство конвейера и детали оптимизации разных операций, суперскалярный параллелизм, оптимизация программы подо все эти детали, и в целом на верхнем уровне всё это выражается скорее в других цифрах: во флопсах, в бенчмарках. Для задач более экзотических - вообще бенчмарки могут быть не показательны, а надо брать конкретную задачу, и её сравнивать.

-- 05.01.2017 13:42:12 --

bondkim137 неплохо всё изложил, только про кэши, сегодня многоуровневые и тоже "умные" (с предсказаниями и предзагрузкой) не упомянул.

 Профиль  
                  
 
 Re: Какой процессор лучше для мат.моделирования?
Сообщение12.01.2017, 02:57 


23/03/14
48
Цитата:
Также используется технология MultiThreading, по сути представляющая из себя возможность одновременного выполнения двух последовательностей команд на одном и том же наборе конвееров - понятно, что эффективность данного подхода резко ограничивается, особенно если обе последовательности используют один и тот же тип конвееров. Эта технология в общем-то ничем не выделяется от иных оптимизаций, кроме того, что в системе виртуально удваиваются ядра - потому о ней люди больше знают, чем о других. Другими словами, перед тем, чтоб склонять слово поток, надо определиться, что вы под этим понимаете.

Вопрос ко всем: почему в Matlab с помощью parfor можно распараллелить только на число потоков, равное числу ядер, при этом виртуальные ядра задейтсвовать в parfor не удаётся?
Это на всех версиях Matlab виртуальные ядра в parfor использовать не получается?

 Профиль  
                  
 
 Re: Какой процессор лучше для мат.моделирования?
Сообщение19.01.2017, 11:11 


19/01/17
1
Цитата:
Вдогонку: никто в Москве не желает продать работающий системник с core i7, 8 потоков?
Необязательно же в Москве искать - вот http://www.natex.us/Intel-S2600CP2J-Motherboard-Kit-p/s2600cp-sr0h8-128gb-12800.htm - прекрасный народный комплект, два процессора E5-2670 (16 физических ядер), 128 Гб памяти и материнка всего за 450 долл

 Профиль  
                  
 
 Re: Какой процессор лучше для мат.моделирования?
Сообщение21.01.2017, 16:12 
Аватара пользователя


07/02/12
1403
Питер
Munin в сообщении #1182039 писал(а):
только про кэши, сегодня многоуровневые и тоже "умные" (с предсказаниями и предзагрузкой) не упомянул

Да я много чего не упомянул :)
Если говорить о RAM, то помимо частоты, также стоит упомянуть разрядность шины (у ноутбуков, например, память одного поколения имеет вдвое меньшую шину, чем у настольных PC - и размер модулей физически короче), количество каналов (многие материнские платы умеют одновременно обращаться к разным модулям памяти, подключенным в разные каналы). Также сами модули умеют иногда, например, писать и читать одновременно, если расположение ячеек удовлетворяет некоторым правилам (связано с двухмерной структурой чипов и адресацей ячеек по двум осям отдельно). Также стоит отметить, что бывают разновидности такой организации адресации, при которой запрос обрабатывается за непостоянное время (иногда со штрафами, но зато с более высокой базовой частотой - по сути RAM становится не точно Random). И да, многоуровневая (с ростом уровня размер увеличивается, скорость падает) кеш-память с умной предзагрузкой, кеш-буферы на запись, учитывающие необходимость одновременной работы нескольких ядер таким способом, что бы мультизадачные программы могли работать с эффективным обменом данными между ядрами (что не столь тривиально организовать при раздельном кеше на ядрах).

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

vladimir-2013 в сообщении #1183888 писал(а):
почему в Matlab с помощью parfor можно распараллелить

Я не знаю, никогда не сталкивался. Это какое-то искуственное ограничение.

К слову, при использовании HyperThreading (логических ядер) по понятным причинам сильно не соблюдается аддитивность в оценках загруженности процессора - т.е. запускаете задачу, она ест, скажем 25%. Запускаете вторую такую же, теперь обе едят по 40%. Может, авторам это как-то мешает.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 43 ]  На страницу Пред.  1, 2, 3

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group