Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Программная инженерия > Компьютерное железо
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2010, 12:26   #1
Mixim
Форумчанин
 
Регистрация: 29.10.2009
Сообщений: 259
Сообщение 6-ти ядерные процессоры?

Зашел на официальные сайты компаний AMD и INTEL, на каждом из которых нашел информацию о продаже ими 6-ти ядерных процессоров. Всегда думал, что по причине использования в ПК двоичной системы счисления, все величины должны быть "степенью числа 2", но как-то число 6 совсем даже не смахивает на 2 в какой-либо степени(целочисленной). До этого, насколько мне помнится, все процессоры обладали либо одним, либо двумя, либо четырьмя ядрами, по логике - следующие процессоры должны были быть восьми-ядерными, но между шестью и восемью огромная разница! Скажите, все таки по какому принципу строится количество ядер в процессоре, может быть в частности эти "6-ти ядерные Core i7-980X" являются просто модификацией обычных четырех-ядерных Core i7?
Кстати, вот эти вот 6-ти ядерные процессоры стоят около 38тыс.р, в то время как четырех-ядерные Core i7 стоят в пределах 15т.р. - значительная разница! Почему между ними такая огромная разница в цене - 6-ти ядерные являются новинкой, а все компании любят на новинки цены поднимать до небес?
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.
Mixim вне форума Ответить с цитированием
Старый 10.11.2010, 13:18   #2
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Ну всё-таки на 6 ядерных процессоров можно одновременно запускать 12 потоков, т.е. производительность будет очень высокая. Например, недавно журнал "Мир ПК" проводил испытания какого-то там 6 ядерного процессора и и видеокарты NVIDIA GeForce GTX 480. Проверяли, что быстрее посчитает факториал 250000: оказалось, что видеокарта быстрей, хоть и процессор работал в 12 потоков; у процессора на всё про всё ушло 6,6 сек, а у видяхи - 0,6 сек. Неплохо?
_-Re@l-_ вне форума Ответить с цитированием
Старый 10.11.2010, 13:27   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а чем тебе помогут 12 потоков(кстати а с чего это 12, если ядер 6?) считать факториал? он считается в основном же одним потоком(или я не прав?)
так что тут шло более сравнение мощности одного ядра с мощностью видюхи.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.11.2010, 13:35   #4
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
он считается в основном же одним потоком(или я не прав?)
Нет, ты не прав. Работали все шесть ядер, и на каждом по два потока. Внимательней надо.
Цитата:
так что тут шло более сравнение мощности одного ядра с мощностью видюхи.
А это было так, к слову.
_-Re@l-_ вне форума Ответить с цитированием
Старый 10.11.2010, 13:38   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Представляете как он греться будет?
Между прочим зимой они как "горячие" пирожки разлетятся - вместо батарей будут дома отапливать
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.11.2010, 13:42   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

мне просто интерестно как раскладывается вычисление факториала для многих потоков, ведь это же линейная операция поидее.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.11.2010, 13:50   #7
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
по причине использования в ПК двоичной системы счисления, все величины должны быть "степенью числа 2", но как-то число 6 совсем даже не смахивает на 2
с чего... есть и троичные компьютеры ...а что смущает в числе 6? а 100 ядерные процы от Tilera Tile-GX100
Цитата:
Проверяли, что быстрее посчитает факториал 250000: оказалось, что видеокарта быстрей
угу, только у видяхи своих процессоров немало ...да и собственно уже есть анонс:
Цитата:
NVIDIA готовит новый вариант чипа GF104 с 384 потоковыми процессорами.

Похоже, не одним лишь возможным выпуском нового флагмана GeForce GTX 580 на базе 40 нм чипа GF110, вмещающего в себя 512 активных ядер CUDA и примерно 128 текстурных блоков, собирается ответить компания NVIDIA на анонс семейства видеокарт AMD Radeon HD 6000
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 10.11.2010, 14:33   #8
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Цитата:
мне просто интерестно как раскладывается вычисление факториала для многих потоков, ведь это же линейная операция поидее.
Самый наипримитивнейший способ, какой может быть для n!:
делим промежуток от 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.


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

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 10.11.2010, 18:01   #9
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
наверняка в математике есть способы считать факториал "не в лоб"
Насколько я понял здесь подсыет шел именно "в лоб", чтобы приблизительно оценить быстродействие, а не оптимизацию.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 10.11.2010, 18:15   #10
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Да, есть алгоритмы, которые вообще никак не паралелятся, а есть на подобии вышеприведенного факториала - паралелятся запросто. Тем не менее, существует огромная проблема синхронизации результатов. На вышеприведенном примере x1 может например посчитаться быстрее, чем x2. Тогда, чтобы получить x1*x2 процессору необходимо все равно дождаться результатов работы вычисления x2. В этот состоит основная сложность. Можно конечно мониторить, и если x1 уже посчитался, тогда разделить подсчет x2 опять на несколько чястей и тд. Но даже современные компиляторы не такие умная как бы хотелось..
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц