От чего бы не похвастаться?

Discussion in 'Hardware and Software' started by Vadim Maksimenko, Feb 19, 2008.

  1. breedr

    breedr FH Developer

    Joined:
    Jan 27, 2000
    Messages:
    970
    Re: От чего бы не похвастаться?

    Ага, кому тогда нужны были драйвера??? Меняешь бит, отвечающий за работоспособность A21 в регистрах контроллера (клавиатуры кажется), и вот - можно адресовать целых 64кб %)
     
  2. bimbom

    bimbom FH Beta Tester

    Joined:
    Jan 19, 2006
    Messages:
    7,431
    Location:
    Moscow, Russia
    Re: От чего бы не похвастаться?

    CPU может организовать несколько сегментов данных по 4 гига. Где находятся сами страницы сегментов процессу (не в 0 кольце) неизвестно.

    Винда всё это делает через жо своп. Win2k+, в принципе, адресует до 128 гигов. Так что выделить можно более 4 гигов, а адресовать ? нет (на самом деле проблемы начнутся при одномоментном выделении памяти > 2 гигов)

    Для сортировки таких массивов существуют индексы. Врядли такой объём создаётся одномоментно, а для поддержания индекса в актуальном состоянии много ресурсов не требуется. С другой стороны, если требуется работать с такими массивами в памяти, требуется более другая ось и аппаратка другого класса.
     
  3. PressLuftHammer

    PressLuftHammer FH Beta Tester

    Joined:
    Mar 5, 2003
    Messages:
    14,937
    Location:
    Ekaterinburg (Russia)
    Re: От чего бы не похвастаться?

    Через AWE ?:)

    Это не самая большая среди задниц.
    Самая актуальная на мой взгляд заключается в том как использовать много ядер(процессоров) для решения одной задачи, без эспоненциального роста сложности приложения.
     
  4. Vadim Maksimenko

    Vadim Maksimenko Well-Known Member

    Joined:
    Feb 12, 2000
    Messages:
    15,468
    Location:
    Vilnius, Lithuania
    Re: От чего бы не похвастаться?

    Не, мне такая крутизна не попадалась :) В основном -- эмуляция.
     
  5. -andy-

    -andy- Well-Known Member

    Joined:
    Feb 12, 2000
    Messages:
    8,871
    Location:
    St.Petersburg
    Re: От чего бы не похвастаться?

    Ты не стар, ту суперстар :)

    P.S. А я еще магнитные барабаны и перфоленту застал :D
     
  6. PressLuftHammer

    PressLuftHammer FH Beta Tester

    Joined:
    Mar 5, 2003
    Messages:
    14,937
    Location:
    Ekaterinburg (Russia)
    Re: От чего бы не похвастаться?

    Мы на УПК на перфокарты и пефоленты данные вводили :)
     
  7. bimbom

    bimbom FH Beta Tester

    Joined:
    Jan 19, 2006
    Messages:
    7,431
    Location:
    Moscow, Russia
    Re: От чего бы не похвастаться?

    Разумеется. Причём не уверен, что в 64-bit этого нет.

    По-идее, надо писать многопоточные асинхронные приложения. Тогда это дело должно легко распихиваться по ядрам. Например, в серверных прогах (WEB, POST) каждый запрос выполняется в новом треде, который можно кинуть на другое ядро.
    А по поводу сложности, .net обеспечивает несложную организацию таких методов ? для сего есть готовые классы.
     
  8. PressLuftHammer

    PressLuftHammer FH Beta Tester

    Joined:
    Mar 5, 2003
    Messages:
    14,937
    Location:
    Ekaterinburg (Russia)
    Re: От чего бы не похвастаться?

    Незнаю разве что для совместимости. При способности прямой адресации
    64 бита доступно памяти столько что пока практических задачь таких не вижу где бы оно было нужно все.

    В этом плане все то же что есть сейчас. Речь о том чтобы использовать в обычном приложении расчитаном на выполнение одной задачи эту многоядерность. Для этого нужно распаралеливать алгоритмы что не всегда реально. А там где реально возникает масса проблем с синхронизацией. Отчего растет сложность таких приложений и растет очень быстро. Вот это я и имел в виду.

    То же, только засунутое в классы. Как поведет себя многопоточное приложение в различных ситуациях синхронизирован ли доступ к общим данным и не возникнет ли дедлоков при доступе.
    Грубо говоря если один поток залочил один общий ресурс, а второй другой. Но для решения задачи каждому из них они нужны оба имеем дедлок, состояние взаимного бесконечного ожидания.
    Приведение же обоих ресурсов к одному приведет к резкому снижению степени паралельности задачи, или вообще фактически к поочередному выполнению.
    И по мере увеличения количества таких ресурсов и роста сложности взаимодействия с ними потока, задача разруливания таких дедлоков будет все сложней и сложней.
    IMHO тут уже нужны другие подходы к решению подобных проблем.
     
  9. Sea

    Sea Well-Known Member

    Joined:
    Feb 9, 2001
    Messages:
    27,469
    Location:
    Ukraine, Kiev
    Re: От чего бы не похвастаться?

    Дейкстра пишет про простой способ исключения этого момента - лочить ресурсы в одинаковой последовательности. :)
     
  10. PressLuftHammer

    PressLuftHammer FH Beta Tester

    Joined:
    Mar 5, 2003
    Messages:
    14,937
    Location:
    Ekaterinburg (Russia)
    Re: От чего бы не похвастаться?

    Далеко не для всех задач применимо.
    На сегодня простых методов решения пока не найдено на сколько мне известно.
    Яйцеголыве последне время все больше кивают в сторону функциональных языков. Но терзают меня сомнения на этот счет большие :)
     
    Last edited: Feb 29, 2008
  11. Vadim Maksimenko

    Vadim Maksimenko Well-Known Member

    Joined:
    Feb 12, 2000
    Messages:
    15,468
    Location:
    Vilnius, Lithuania
    Re: От чего бы не похвастаться?

    Неуверен -- не обгоняй ;)
    Есть такая херовина как расчет сред (погода, аэродинамика, гидродинамика, ядреные и химические процессы), где идет обработка огромных массивов множеством потоков по количеству ядер, или процессоров, если те одноядерные (MISD), и там .net и прочие прибамбасы тебе никак не помогут. Все ручками.

    К стати, гранату в огород Трака: 8800 содержит 128 шейдеров, кои есть процессоры с плавающей точкой. Есть спец. API для этого -- CUDA. Так что у хорошей видео карты применение -- не только игры :)
     
  12. marazm

    marazm Well-Known Member

    Joined:
    Jan 27, 2000
    Messages:
    6,975
    Location:
    Kiev, Ukraine
    Re: От чего бы не похвастаться?

    У Траковской только 96 ;)
     
  13. Vadim Maksimenko

    Vadim Maksimenko Well-Known Member

    Joined:
    Feb 12, 2000
    Messages:
    15,468
    Location:
    Vilnius, Lithuania
    Re: От чего бы не похвастаться?

    Тогда я понял, почему он ее продает :D
     
  14. bimbom

    bimbom FH Beta Tester

    Joined:
    Jan 19, 2006
    Messages:
    7,431
    Location:
    Moscow, Russia
    Re: От чего бы не похвастаться?

    Фикус в том, что сложность и накрученность нынешней винды такова, что никто не даст гарантию, что какую-то старую функцию можно безболезненно убрать или переписать под новые реалии.
    Например, вот на кой в серверных вариантах винды директ-Хы?

    ну-ну :cool:

    Так я и не спорю! Сложнее алгоритмы, сложнее отлаживать. И как всегда, «Лучше выпустить сейчас, чем оптимизировать. А там и сервис-пак подоспеет».
    Пока что, оптимально распаралелливать процесс получается только у специалиста, а его время несравненно дороже процессорного.

    Разумеется. Плюс убраны критические секции.

    А вот для грамотной реализации подобных алгоритмов существует системный архитектор, который, в идеале, должен получить грамотное и законченное техзадание и иметь время на разработку алгоритмов.

    Вот ты это к чему написал, а? Дотнет упрощает программисту создание нового потока, по сравнению с плюсами. Сам он всего-то фрэймворк ? програмная обёртка над API. А, «такая херовина как расчет сред» замечательно разбивается на потоки. И подобные задачи решают кластерными системами. Посмотри ещё проект SETI@home.
     
  15. PressLuftHammer

    PressLuftHammer FH Beta Tester

    Joined:
    Mar 5, 2003
    Messages:
    14,937
    Location:
    Ekaterinburg (Russia)
    Re: От чего бы не похвастаться?

    Через него в винде работает многое помимо игрушек.


    Учитывая тенденцию в сторону увеличения многоядерности, и прироста вычислительных мощностей за счет ея, вопрос распаралеливание очень скоро станет необходимостью для многих приложений.

    Тут дело в том что сложность алгоритмов быстро растет :(

    Да в принципе не особо IMHO.
     
  16. bimbom

    bimbom FH Beta Tester

    Joined:
    Jan 19, 2006
    Messages:
    7,431
    Location:
    Moscow, Russia
    Re: От чего бы не похвастаться?

    Только зачем?!

    Так уже. При возросшей общей скорости вычислений процессора, частота ядра стала ниже.

    Ага, и времени нет. Сам этим страдаю ? ибо то, что сегодня на пальцах расписано, надо сделать вчера ? вот и времени на грамотное проектирование не хватает.

    А чего тут думать, тут трясти надо (с)
    Code:
    Thread t = new Thread(new ThreadStart(this.BeginJob));	
    t.Start();
     
  17. PressLuftHammer

    PressLuftHammer FH Beta Tester

    Joined:
    Mar 5, 2003
    Messages:
    14,937
    Location:
    Ekaterinburg (Russia)
    Re: От чего бы не похвастаться?

    Подозреваю что это просто эволюционный процесс.
    Когда некоторые технологии изначально предназначенные только для игрушек начинали ипользоваться и не игровыми приложениями.
    Собственно сам DirectX появился как попытка объехать ограничения свойственные GDI.

    Просто пока хватает задачь которые решатся паралельно.
    Те же системные фоновые процессы и т.п. но потребная для их решения вычислительная моность не так велика. И с увеличением количества ядер
    встанет вопрос как использовать их производительность для решения пользовательских задач. Не все ведь задачи сводятся к серверным с паралельной обработкой множества запросов пользователей.
    Есть не мало задач которые нужно решать для одного пользователя.
    Те же игрушки пока там многоядерность используется слабо. И по мере увеличения количества ядер это будет все более явно.

    Тут дело не просто во времени а в том что время это растет по экспоненте. Число вариантов взаимодействия потоков растет очень быстро по мере роста их количества и усложнения решаемых ими задач.

    Code:
    hThread[i] = CreateThread(NULL,0,ThreadProc,pData,0,&dwThreadId[i]);
    
     
  18. bimbom

    bimbom FH Beta Tester

    Joined:
    Jan 19, 2006
    Messages:
    7,431
    Location:
    Moscow, Russia
    Re: От чего бы не похвастаться?

    А какие ограничения по гди у сервера? На воркстейшен внедрили ? работает, а «вынедрять» убоялись?

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

    Ну, не по экспоненте, всё ж не так шибко. ;)
    С другой стороны, отдавать это дело в руки оси и проца, както нехватко. Ну, закинут они часть кода в другое ядро или проц (а для оси они на один цвет), и будут потом через тьму-таракань данные гонять.


    Лана, уговорил. :cheers:
    Хотя, помнится, посложнее было (мс вс 6)
     
  19. PressLuftHammer

    PressLuftHammer FH Beta Tester

    Joined:
    Mar 5, 2003
    Messages:
    14,937
    Location:
    Ekaterinburg (Russia)
    Re: От чего бы не похвастаться?

    По GDI это именно для игрушек, а нныче через него почти вся мултимедия работает и такие штуки как DirectShow.
    Т.е возможно какой нить прибамбас использует что то из состава DirectX.
    Причем может быть даже не напрямую.
    А "вынедрять" значит плодить еще один вариант кода которого и так там море.
    Тут уже видимо вопрос стоит универсальность vs эффективность, как и во многих вещах в технике.

    Опять таки это на первый невооруженный взгляд все просто как впрочем и в любом деле. Многое зависит от игрушки. Пытаются конечно использовать но дело в том что во первых задачи для разных потоков оказываются "не симетричными" и организовать взаимодействие их таким образом чтобы максимально их разсинхронизировать тоже не просто.
    Проблема не в том что это нельзя сделать, а в том что это сделать весьма непросто. Сложность возрастает непропорционально производительности.

    Движки то хороши когда речь об однотипных приложениях и то не всегда.


    Бывает куда хуже в Interbase в свое время была падла при двух процессорах он работал гораздо медленнее чем на одном !.
    Проблема была в том что ОС начинала перекидывать его потоки с проца на проц и как результат огромная загрузка проца за счет этого.
    Попытка распараллелить код на уровне команд когда за такт выполняется 20 команд была в Itanium, но там распараллеливание выносилось на уровень компилятора. Компилятор для этого правда нужен куда более "умный". Но опять таки это все же не полное решение проблемы, компилятор все таки не способен вникнуть в суть алгоритма и выполнить распараллеливание должным образом.
    Возможно выход в переходе на функциональные языки. Правда несмотря на то что существуют они почти столько же сколько алгоритмические как то не шибко используются да и мозги нужно сильно перестраивать.
    Майкрософт вон даже зашевилился и начал F# разрабатывать под .Net %)
     
  20. bimbom

    bimbom FH Beta Tester

    Joined:
    Jan 19, 2006
    Messages:
    7,431
    Location:
    Moscow, Russia
    Re: От чего бы не похвастаться?

    При этом снижается безопасность и стабильность. Вообще, имхо, NT4 была самая стабильная ось.

    А кто говорит, что это легко? Это эффективно. Например, есть архиваторы, что загружают все ядра системы, хотя результат сжатия должен получиться одинаковый с одноядерной системы. Хоть потоки и однотипные, но работать надо со всем архивом, что также непросто.

    Я имею ввиду игровые движки.

    Имхо, следует пихать как можно больше работы в классы/процедуры, с минимальным использованием/не использованием глобальных переменных и использовании событий вместо ожидания завершения процедуры. Тогда, такой блок компилятор/ось сможет вынести в отдельный поток. А микрософт сильно выиграла от дотнета ? там и многоязычие, и простота, и сикуль, и для веба всё готово. Плюс удобный ИДЕ с бесплатными вариантами.