Не ел я Kal... Кто название тока такое придумал) Понимаю коенчно что они не думали о том как это звучи в России, но чё-то неохота аппарат с таким названием проца...
Да как бы плохо не звучало название, а все равно покупать будут. Вон, посмотри, Chevrolet Captiva тысячами покупают! И никого не останавливает, что она и новая - Каптива!
У вас на компе современная ОС, которая сама по себе запускает не одну сотню потоков
Много потоков не значит, что используется много ядер. Любые мало-мальски сложные приложения запускают десятки потоков, а грузят одно ядро. Для использования многоядерности нужны не просто многопоточные приложения, а приложения, нужен специальный подход в программировании. Про ОС отдельная тема, проверю время загрузки на 1 и 3 ядрах, скажу, но почему то уверен, что разница будет невелика, ибо семерка уходит корнями в NT, а в те времена никто и не думал о многоядерности, а львиная доля кода ядра и по сей день на месте.
Для использования многоядерности нужны не просто многопоточные приложения, а приложения
wtf?
corvus писал(а):
Про ОС отдельная тема, проверю время загрузки на 1 и 3 ядрах, скажу, но почему то уверен, что разница будет невелика
Многопоточную загрузку полтер гейтс реализовал только в вынь7, кроме того на время загрузки ОС влияет не только процессор! Так что я лично не совсем понимаю что вы будете проверять...
Junior
Статус: Не в сети Регистрация: 12.09.2011 Откуда: Волгоград
А мне нравится эта штука. Меня прельщяют именно 7" планшетики удобством пользования в дороге. И почитать и поиграть и кино посмотреть и позвонить если надо. 10-12 т.р. я бы легко отдал за такой девайс!
Junior
Статус: Не в сети Регистрация: 02.06.2011 Откуда: Санкт-Петербург
corvus писал(а):
Много потоков не значит, что используется много ядер.
Значит. Много потоков = используется много ядер. За раскидывание потоков по ядрам отвечает операционка и, если в приложении более одного потока, то операционка может кинуть их на разные ядра. Это зависит от нагрузки на ядра.
corvus писал(а):
Любые мало-мальски сложные приложения запускают десятки потоков, а грузят одно ядро.
Это не так. Либо там основная обработка осуществляется в одном потоке, а тогда приложение запускает много потоков, работает на нескольких ядрах, но тяжелый поток выполняется только на одном ядре, либо приложение состоит только из одного потока.
corvus писал(а):
Для использования многоядерности нужны не просто многопоточные приложения, а приложения, нужен специальный подход в программировании.
"специальный подход в программировании" это и есть "многопоточные приложения". Разумеется нужно соображать, что ты пишешь, и распараллеливать тяжёлые задачи, а не просто распараллеливать "где-нибудь".
это вы видимо не знаете о чем пишете. я сам писал приложения, использующие более 1 ядра, и поверьте, заставить приложение работать более чем на одном ядре, просто заюзав CreateThread() не получится. я поясню. Многопоточность используется не только как средство производительности, но и для параллельного исполнения задач в программе. Если потоки используют общие ресурсы, не видать вам оптимизации.
JawBreaker писал(а):
"специальный подход в программировании" это и есть "многопоточные приложения". Разумеется нужно соображать, что ты пишешь, и распараллеливать тяжёлые задачи, а не просто распараллеливать "где-нибудь".
Не учите меня, если вы программист, то неграмотный.
Junior
Статус: Не в сети Регистрация: 02.06.2011 Откуда: Санкт-Петербург
corvus писал(а):
и поверьте,
Не поверю. Что же, по-вашему, ещё надо?
corvus писал(а):
заставить приложение работать более чем на одном ядре, просто заюзав CreateThread() не получится.
Получится. ОС раскидывает потоки по ядрам, а не вы. Если в процессе более одного потока, то ОС может исполнять их на разных ядрах. Даже на Эльбрусе с древним Solaris 2.5.1 четыре тяжёлых потока, созданных pthread_create(), исполняются на всех 4-х ядрах, а эту систему современной назвать никак нельзя.
corvus писал(а):
Не учите меня, если вы программист, то неграмотный.
И что же я сказал не так? Если у нас, к примеру, приложение по декодированию видео, то мало кинуть интерфейс и обработку на разные потоки - в таком случае будет загружено только одно ядро. Нужно распараллелить сам алгоритм декодирования в зависимости от колва ядер.
планировщик раскидает потоки по ядрам и они будут простаивать. это по вашему поддержка многоядерности? скажите, в чем разница с точки зрения пользователя, 4 ядра загруженные на 25% или одно на 100%? это не есть поддержка многоядерности.
JawBreaker писал(а):
И что же я сказал не так?
JawBreaker писал(а):
"специальный подход в программировании" это и есть "многопоточные приложения".
НЕТ. Многопоточности самой по себе мало. Надо еще грамотно писать приложения, с самого начала, причем в случае с историей версий программы разработчик часто считает реинжиниринг кода с целью улучшенной поддержки многоядерных процессоров нерентабельным, как итог, вендоры железа впереди программистов. Я вам могу даже код дать, не ахти что конечно, но стоит туда внести парочку небольших правок, и оно станет выполнятся аккурат вдвое медленней, заргужая двухядерный процессор на 50%. Вот разница в этих правках и есть поддержка многоядерности, а в сложное законченное приложение такие правки внести подчас просто невозможно.
_________________ Сон совести рождает чудовищ...
Последний раз редактировалось corvus 29.09.2011 19:29, всего редактировалось 1 раз.
я сам писал приложения, использующие более 1 ядра, и поверьте, заставить приложение работать более чем на одном ядре, просто заюзав CreateThread() не получится.
Да вы что? Взять к примеру openMP достаточно подключить omp.h и выбрать фрагмент программы который необходимо распараллелить... все какое-никакое приложение будет многопоточным и замечательно грузить все ядра цп, остальное дело оптимизации и конкретно взятого языка.
corvus писал(а):
Не учите меня, если вы программист, то неграмотный.
А что он не правильно сказал то?...Я скорее думаю так про вас...
Взять к примеру openMP достаточно подключить omp.h
я про это что нибудь говорил? насколько я знаю, это директивы для компилятора, а я вам говорю про написание кода на голом C/С++
Relaps писал(а):
А что он не правильно сказал то?
Значит как я понял, надо было всего-навсего разбить приложение на десяток-другой потоков и все будет ок, а люди заморачиваются, что-то придумывают, распарралеливают алгоритмы.
Не буду оффтоп разводить, спор окончен, каждый остался при своем мнении.
Junior
Статус: Не в сети Регистрация: 02.06.2011 Откуда: Санкт-Петербург
corvus писал(а):
планировщик раскидает потоки по ядрам и они будут простаивать. это по вашему поддержка многоядерности?
Именно.
corvus писал(а):
скажите, в чем разница с точки зрения пользователя, 4 ядра загруженные на 25% или одно на 100%?
В том что одно ядро, загруженное на 100% = повисший комп.
corvus писал(а):
Надо еще грамотно писать приложения,
Именно про это я и говорил.
corvus писал(а):
Вот разница в этих правках и есть поддержка многоядерности,
Эти правки называются "оптимизация приложения", а не "поддержка многоядерности".
corvus писал(а):
Значит как я понял, надо было всего-навсего разбить приложение на десяток-другой потоков и все будет ок, а люди заморачиваются, что-то придумывают, распарралеливают алгоритмы.
Я дважды написал, что подход "всего-навсего разбить приложение на десяток-другой потоков и все будет ок" не верен, а нужно распараллеливать тяжелые места.
JawBreaker писал(а):
"специальный подход в программировании" это и есть "многопоточные приложения". Разумеется нужно соображать, что ты пишешь, и распараллеливать тяжёлые задачи, а не просто распараллеливать "где-нибудь".
JawBreaker писал(а):
И что же я сказал не так? Если у нас, к примеру, приложение по декодированию видео, то мало кинуть интерфейс и обработку на разные потоки - в таком случае будет загружено только одно ядро. Нужно распараллелить сам алгоритм декодирования в зависимости от колва ядер.
а по мне это прирост производительности при увеличении количества ядер путем распараллеливания кода . я говорю о коде, а не о том, что ОС корректно работает с несколькими ядрами. по моему, в моем толковании этот термин встречается чаще.
JawBreaker писал(а):
В том что одно ядро, загруженное на 100% = повисший комп.
Junior
Статус: Не в сети Регистрация: 02.06.2011 Откуда: Санкт-Петербург
corvus писал(а):
а по мне это прирост производительности при увеличении количества ядер путем распараллеливания кода . я говорю о коде, а не о том, что ОС корректно работает с несколькими ядрами. по моему, в моем толковании этот термин встречается чаще.
Я вам ещё раз говорю - у вас не одна программа запущена, а несколько. А то, о чём вы говорите, назвается "оптимизация". Я про это уже говорил.
corvus писал(а):
Да ну, неправда.
На одноядерноё системе - чистая правда. Поэтому многоядерные системы имеют смысл всегда.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения