![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 29.10.2009
Сообщений: 259
|
![]()
Зашел на официальные сайты компаний AMD и INTEL, на каждом из которых нашел информацию о продаже ими 6-ти ядерных процессоров
![]() Кстати, вот эти вот 6-ти ядерные процессоры стоят около 38тыс.р, в то время как четырех-ядерные Core i7 стоят в пределах 15т.р. - значительная разница! Почему между ними такая огромная разница в цене - 6-ти ядерные являются новинкой, а все компании любят на новинки цены поднимать до небес?
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.
|
![]() |
![]() |
![]() |
#2 |
C++, Java
Старожил
Регистрация: 10.04.2010
Сообщений: 2,665
|
![]()
Ну всё-таки на 6 ядерных процессоров можно одновременно запускать 12 потоков, т.е. производительность будет очень высокая. Например, недавно журнал "Мир ПК" проводил испытания какого-то там 6 ядерного процессора и и видеокарты NVIDIA GeForce GTX 480. Проверяли, что быстрее посчитает факториал 250000: оказалось, что видеокарта быстрей, хоть и процессор работал в 12 потоков; у процессора на всё про всё ушло 6,6 сек, а у видяхи - 0,6 сек. Неплохо?
![]() |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
а чем тебе помогут 12 потоков(кстати а с чего это 12, если ядер 6?) считать факториал? он считается в основном же одним потоком(или я не прав?)
так что тут шло более сравнение мощности одного ядра с мощностью видюхи. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#4 | ||
C++, Java
Старожил
Регистрация: 10.04.2010
Сообщений: 2,665
|
![]() Цитата:
Цитата:
![]() |
||
![]() |
![]() |
![]() |
#5 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Представляете как он греться будет?
Между прочим зимой они как "горячие" пирожки разлетятся - вместо батарей будут дома отапливать ![]()
I'm learning to live...
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
мне просто интерестно как раскладывается вычисление факториала для многих потоков, ведь это же линейная операция поидее.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#7 | |||
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]() Цитата:
Цитата:
Цитата:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|||
![]() |
![]() |
![]() |
#8 | |
Linux C++ Qt ARM
Старожил
Регистрация: 30.11.2008
Сообщений: 3,030
|
![]() Цитата:
делим промежуток от 1 до n на нужное кол-во частей. (для простоты примера n будет 20, а потока 2) 20!=1*2*3*4*5*6*7*8*9*10*11*12*13*1 4*15*16*17*18*19*20. Мы ведь можем попилить это выражение на куски и потом куски перемножить? (для чисел порядок операндов, при умножении, не имеет значения, так что мы можем себе это позволить). Т.е., например, первый поток считает у нас x1=1*2*3*4*5*6*7*8*9*10, а второй x2=11*12*13*14*15*16*17*18*19*20, а после этоого ответ n!=x1*x2. Ну это примитивно очень, наверняка в математике есть способы считать факториал "не в лоб", но я их не знаю, возможно в них можно что-то еще придумать.
Дилетант широкого профиля.
"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс |
|
![]() |
![]() |
![]() |
#9 | |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
![]() Цитата:
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 15.06.2010
Сообщений: 740
|
![]()
Да, есть алгоритмы, которые вообще никак не паралелятся, а есть на подобии вышеприведенного факториала - паралелятся запросто. Тем не менее, существует огромная проблема синхронизации результатов. На вышеприведенном примере x1 может например посчитаться быстрее, чем x2. Тогда, чтобы получить x1*x2 процессору необходимо все равно дождаться результатов работы вычисления x2. В этот состоит основная сложность. Можно конечно мониторить, и если x1 уже посчитался, тогда разделить подсчет x2 опять на несколько чястей и тд. Но даже современные компиляторы не такие умная как бы хотелось..
Чтобы понять рекурсию, сперва нужно понять рекурсию.
|
![]() |
![]() |