2014 dxdy logo

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

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




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

 
 
 
 Re: Какой процессор лучше для мат.моделирования?
Сообщение03.01.2017, 20:03 
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 
Аватара пользователя
Стоит еще поколение указывать. Первые i7 имеют меньшую производительсность, чем, например, текущие i5/i3. А физические (да и логические) ядра не стоит называть потоками. И тем более, сравнивать их производительность с видеокартами в штуках.

 
 
 
 Re: Какой процессор лучше для мат.моделирования?
Сообщение04.01.2017, 18:30 
bondkim137 в сообщении #1181811 писал(а):
Стоит еще поколение указывать. Первые i7 имеют меньшую производительсность, чем, например, текущие i5/i3. А физические (да и логические) ядра не стоит называть потоками. И тем более, сравнивать их производительность с видеокартами в штуках.

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

 
 
 
 Re: Какой процессор лучше для мат.моделирования?
Сообщение05.01.2017, 00:47 
Аватара пользователя
vladimir-2013 в сообщении #1181883 писал(а):
А производительность разве не частотой измеряется?

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

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

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

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

 
 
 
 Re: Какой процессор лучше для мат.моделирования?
Сообщение05.01.2017, 02:47 
Аватара пользователя
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 
Спасибо за подробные ответы.

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

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

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

 
 
 
 Re: Какой процессор лучше для мат.моделирования?
Сообщение05.01.2017, 13:38 
Аватара пользователя
vladimir-2013 в сообщении #1181980 писал(а):
А чем ещё (кроме кол-ва ядер, охлаждения, частоты RAM)?

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

-- 05.01.2017 13:42:12 --

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

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

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

 
 
 
 Re: Какой процессор лучше для мат.моделирования?
Сообщение19.01.2017, 11:11 
Цитата:
Вдогонку: никто в Москве не желает продать работающий системник с 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 
Аватара пользователя
Munin в сообщении #1182039 писал(а):
только про кэши, сегодня многоуровневые и тоже "умные" (с предсказаниями и предзагрузкой) не упомянул

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

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

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

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

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

 
 
 [ Сообщений: 43 ]  На страницу Пред.  1, 2, 3


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group