Соблюдение Правил конференции строго обязательно! Флуд, флейм и оффтоп преследуются по всей строгости закона! За статью можно проголосовать на странице материала.
В планшеты не хотят ставить больше 2 гигов оперативки. а это лично мне не нравится. (например даже файл в интернет большой не выгрузить, забивается оператива и ошибка - проверено на майл.ру наприер) надеюсь новое поколение всётаки будет на 64 битной винде.. и с 4 гб озу.. тогда виндопланшет можно будет брать. 200 моделей.... круто вот бы узнать сколько из них будет на винде. ибо сегодняшнее поколение виндопланшетов всего моделей 10 от силы..
Member
Статус: Не в сети Регистрация: 09.04.2011 Откуда: Москва
MaK123 писал(а):
IliaV писал(а):Ключевое слово здесь -- виндовс Платформа так и называется Винтел, потому что Интел+МС=сладкая парочка по выколачиванию бабла из карманов доверчивых пользователей. В том же ГНУ/линюкс процы от АМД пользуются заслуженной популярностью, потому что раскрывают свой потенциал на все 100% благодаря правильному компилятору, тогда как Интел всячески гадит с помощью отсутствия оптимизации для процов АМД.Что -то я сомневаюсь в свойствах компиляторов.Код вида a = (b+c)*d не параллелится по определению - пока нет результата действия в скобках, множить не на что.А код вида a = b+c+d+e оптимизируется любым компилятором, ежели ему не больше 7-8 лет. Т.е. MS Visual Studio 2003 это уже умеет.Ну а для совсем старых компиляторов (зачем их использовать при написании современного кода для современного железа - это другой вопрос) может понадобиться работа программиста бОльшей квалификации, это факт.Прошлый пример в этом случае будет записан где-то так:Поток (1): a1 = a+bПоток (2): a2 = d+eПоток (0): a = a1+a2При этом потоки (1) и (2) будут запущенны паралельно принудительно, уже самим программистом.
Погодите! Зачем их нужно запускать программисту? Ведь исходя из ваших слов компилятор должен сам их распараллелить? Компилятор VB создаёт файл с расширением exe (исполняемый) и программист уже никак не сможет повлиять на распределения операций по потокам, за него это должен сделать компилятор. Принципиально напишу программу тест на VB и скомпилирую её, а потом запущу на компьютере с 1,2,3 и 4 включёнными ядрами. А там мы и увидим насколько умеет распараллеливать задачи ваш компилятор?
MaK123 писал(а): IliaV писал(а):Ключевое слово здесь -- виндовс Платформа так и называется Винтел, потому что Интел+МС=сладкая парочка по выколачиванию бабла из карманов доверчивых пользователей. В том же ГНУ/линюкс процы от АМД пользуются заслуженной популярностью, потому что раскрывают свой потенциал на все 100% благодаря правильному компилятору, тогда как Интел всячески гадит с помощью отсутствия оптимизации для процов АМД.Что -то я сомневаюсь в свойствах компиляторов.Код вида a = (b+c)*d не параллелится по определению - пока нет результата действия в скобках, множить не на что.А код вида a = b+c+d+e оптимизируется любым компилятором, ежели ему не больше 7-8 лет. Т.е. MS Visual Studio 2003 это уже умеет.Ну а для совсем старых компиляторов (зачем их использовать при написании современного кода для современного железа - это другой вопрос) может понадобиться работа программиста бОльшей квалификации, это факт.Прошлый пример в этом случае будет записан где-то так:Поток (1): a1 = a+bПоток (2): a2 = d+eПоток (0): a = a1+a2При этом потоки (1) и (2) будут запущенны паралельно принудительно, уже самим программистом.
Погодите! Зачем их нужно запускать программисту? Ведь исходя из ваших слов компилятор должен сам их распараллелить? Компилятор VB создаёт файл с расширением exe (исполняемый) и программист уже никак не сможет повлиять на распределения операций по потокам, за него это должен сделать компилятор. Принципиально напишу программу тест на VB и скомпилирую её, а потом запущу на компьютере с 1,2,3 и 4 включёнными ядрами. А там мы и увидим насколько умеет распараллеливать задачи ваш компилятор?
Господи Иисусе. Неужели вы правда рассуждаете, как распараллелить b + c + d + e по ядрам? Тут что, никто понятия не имеет о планировщике потоков ОС и аппаратной реализации их переключения? И что один поток не может обращаться к регистрам нескольких ядер? Вы вообще в курсе, что для запуска нового потока старая Windows 2000 выделяет по умолчанию, кажется, 2 мб памяти для стека? Это многие тысячи тактов! А переключение и синхронизация потока? Вам известно, что для переключения нужно сохранить состояние всех регистров текущего ядра процессора, а это не одна сотня байт? Сюда гляньте https://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B0 А ваша оптимизация компилятором сводится всего лишь к загрузке операндов в 4 различных регистра и распараллеливание соответственно ведется на конвейере одного ядра псевдокод
Код:
mov eax, b mov ebx, c mov ecx, d mov edx, e
add eax, ebx ;эти 2 инструкции eax = eax + ebx или b + c add ecx, edx ;выполнятся параллельно ecx = ecx + edx или d + e
add eax, ecx ;а это последнее сложение mov eax, a
Тут нет никакого распараллеливания по ядрам. А в общем случае разделение задачи на несколько потоков кудааааааааааа более сложное решение, точно не для компилятора, особенно с той реализацией многозадачности, что мы имеем в x86-64
Пишу по опыту 12-летней давности. Простейшая мини-ОС с реализацией планировщика нескольких потоков в защищенном режиме.
Member
Статус: Не в сети Регистрация: 09.04.2011 Откуда: Москва
Adolat писал(а):
А ваша оптимизация компилятором сводится всего лишь к загрузке операндов в 4 различных регистра и распараллеливание соответственно ведется на конвейере одного ядрапсевдокод
Вот, вот и я про то же говорил. Если бы было всё так просто и легко то FX-ы бы уже летали в играх а не плелись в хвосте за Интелом!
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения