The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

12.09.2009 01:04  Apple выпустила диспетчер потоков Mac OS X под открытой лицензией

Одним из основных нововведений очередного релиза операционной системы Mac OS X Snow Leopard от компании Apple стала технология центральной диспетчеризации (Grand Central Dispatch), исходные коды которой выпущены под открытой лицензией Apache License v2. Библиотека не зависит от фреймворка Cocoa, написана на языке Си и должна значительно облегчить разработку программ, использующих современную многоядерную процессорную архитектуру.

Технология Grand Central Dispatch — это ответ Apple на проблему параллельного программирования. С развитием современных процессоров, содержащих на одном кристалле два и более ядра, обычный домашний компьютер технологически стал похож на многопроцессорный сервер. И чтобы использовать его вычислительный ресурс на все 100% требуется каким-то образом разделить монолитную программу на ряд параллельно исполняемых независимых «нитей» (threads). Кажущаяся простота реализации этой идеи на практике даже у самых опытных программистов сопровождается такими неприятными побочными эффектами, как взаимные блокировки (deadlocks) и состояние гонки (race conditions). Связано это с тем, что различные «нити» требуют доступа к одним и тем же ресурсам, причем, зачастую одновременно.

С появлением GCD задача управления потоками целиком перекладывается на эту технологию. Предпосылка к этому очень проста: программист на этапе написания кода просто не может знать, какая самая оптимальная конфигурация многопоточности будет в момент исполнения программы. Иерархический дизайн GCD позволяет рабочим потокам обмениваться сообщениями не только с родительским процессом, но и между собой. Из соображений совместимости с предыдущими версиями Mac OS X диспетчер вынесен в отдельный модуль ядра.

Тем не менее, необходимо заметить, что Grand Central Dispatch сам по себе никак не решает проблему параллельных вычислений, оставляя выбор за разработчиком, какие участки кода и когда могут выполняться одновременно.

  1. Главная ссылка к новости (http://www.osnews.com/story/22...)
Автор новости: blkdog
Тип: К сведению
Ключевые слова: lib, proccess, macosx, smp, threads, cpu
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, Vital, 02:01, 12/09/2009 [ответить] [смотреть все]
  • –2 +/
    и в чем отличие от posix threads?
     
  • 1.5, ffsdmad, 07:56, 12/09/2009 [ответить] [смотреть все]
  • –1 +/
    а у них не было чтоли fork?
    iCreateProcess ?
     
  • 1.7, Юниксоид, 10:38, 12/09/2009 [ответить] [смотреть все]
  • +1 +/
    Unix предполагает использование множества процессов для достижения цели, ибо создание процесса в Unix очень дёшево. Поэтому мудрые программеры в случаях когда возможны описанные side effects юзают процессы, а не потоки.
     
     
  • 2.8, аноним, 11:15, 12/09/2009 [^] [ответить] [смотреть все] [показать ветку]
  • +/
    потом всё это весело портировать... весь текст скрыт [показать] [показать ветку]
     
  • 2.10, const86, 11:34, 12/09/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    К сожалению, не все ещё достигли того уровня мудрости, когда можно наслаждаться ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.11, Аноним, 12:04, 12/09/2009 [^] [ответить] [смотреть все]  
  • –1 +/
    у Apple настолько медленное межпроцессное взаимодействие ... весь текст скрыт [показать]
     
     
  • 4.12, letsmac, 13:44, 12/09/2009 [^] [ответить] [смотреть все]  
  • –1 +/
    Дело не в Apple - в мак оси fork работает. Просто используют поэффективнее.
     
  • 2.13, xxx, 13:57, 12/09/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Я далеко не гуру в вопросах многозадачности и т п Поэтому возможно мудрый прог... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.14, Вова, 16:14, 12/09/2009 [^] [ответить] [смотреть все]  
  • +1 +/
    никакая из концепций юникс не отменяет использования многопоточности По теме ... весь текст скрыт [показать]
     
  • 3.24, pro100master, 22:44, 12/09/2009 [^] [ответить] [смотреть все]  
  • +/
    в концепции TBB процессы не нужны И грош цена им Вообще имхо пора бы уже пер... весь текст скрыт [показать]
     
  • 3.29, Юниксоид, 08:58, 13/09/2009 [^] [ответить] [смотреть все]  
  • –2 +/
    I m the first to admit that I ll probably never be able to create a correct thr... весь текст скрыт [показать]
     
     
  • 4.30, Вова, 10:20, 13/09/2009 [^] [ответить] [смотреть все]  
  • +/
    Почитай для начала Стивенса, потом напиши пару тестовых серверов, замерь произ... весь текст скрыт [показать]
     
     
  • 5.33, Юниксоид, 19:51, 13/09/2009 [^] [ответить] [смотреть все]  
  • +/
    Некультурный вы наш Если цена fork имеет значение, то ваш сервер либо гифы 1х1... весь текст скрыт [показать]
     
     
  • 6.35, Вова, 22:57, 13/09/2009 [^] [ответить] [смотреть все]  
  • +/
    говорят, что если цена fork не имеет значения, значит у вашего сервера загрузка ... весь текст скрыт [показать]
     
     
  • 7.36, vitek, 09:06, 14/09/2009 [^] [ответить] [смотреть все]  
  • +/
    значит у моего сервера достаточный пул процессов и их балансировка и хватит у... весь текст скрыт [показать]
     
  • 7.37, vitek, 09:10, 14/09/2009 [^] [ответить] [смотреть все]  
  • +/
    и ещё забавные ограничения можно подумать, что реализовать нормальный серв... весь текст скрыт [показать]
     
     
  • 8.40, Вова, 11:21, 14/09/2009 [^] [ответить] [смотреть все]  
  • –1 +/
    В вашем сервере, который существует только в вашем воображении, ассемблерные в... весь текст скрыт [показать]
     
     
  • 9.43, vitek, 19:25, 14/09/2009 [^] [ответить] [смотреть все]  
  • +/
    верно но проверенных временем и разработанных лучшими специалистами по всему ми... весь текст скрыт [показать]
     
  • 7.48, User294, 22:12, 14/09/2009 [^] [ответить] [смотреть все]  
  • +/
    Именно форк на каждое соединение клиента - на мое имхо по итогам смотрения как ... весь текст скрыт [показать]
     
  • 6.47, User294, 21:54, 14/09/2009 [^] [ответить] [смотреть все]  
  • +/
    Наверное именно поэтому нагруженные сайты выбрасывают апач в пользу лайта и нжин... весь текст скрыт [показать]
     
  • 5.49, User294, 22:27, 14/09/2009 [^] [ответить] [смотреть все]  
  • +/
    А потом прикрути машины состояний и пойми что и процессы и треды запускаемые зан... весь текст скрыт [показать]
     
     
  • 6.59, Вова, 14:11, 15/09/2009 [^] [ответить] [смотреть все]  
  • +/
    это был ответ на реплику о процессах, их преимуществах, о будто бы заточенной п... весь текст скрыт [показать]
     
  • 4.41, Еще один аноним, 12:33, 14/09/2009 [^] [ответить] [смотреть все]  
  • +/
    Это не всегда возможно, вы про идеальное рассуждаете, как физики про идеальн... весь текст скрыт [показать]
     
  • 1.9, anonymous, 11:18, 12/09/2009 [ответить] [смотреть все]  
  • –3 +/
    дизайн GCD позволяет рабочим потокам обмениваться сообщениями не только с родит... весь текст скрыт [показать]
     
  • 1.18, pavlinux, 19:32, 12/09/2009 [ответить] [смотреть все]  
  • –1 +/
    > Связано это с тем, что различные «нити» требуют
    > доступа к одним и тем же ресурсам, причем,
    > зачастую одновременно.

    А зачем тогда распараллеливать?!

     
     
  • 2.19, аноним, 19:42, 12/09/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    как иначе ускорять обработку время безумного наращивания частот и усложнения ин... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.20, pavlinux, 20:12, 12/09/2009 [^] [ответить] [смотреть все]  
  • –1 +/
    Какая разница как добираться до ресурса, через очередь или через очередь очере... весь текст скрыт [показать]
     
     
  • 4.21, агоним, 20:38, 12/09/2009 [^] [ответить] [смотреть все]  
  • +/
    разве irl не будет иначе A - B - - A o - - A R - - N - - B o ... весь текст скрыт [показать]
     
     
  • 5.28, pavlinux, 04:11, 13/09/2009 [^] [ответить] [смотреть все]  
  • +/
    Выполняются да, без базара Но разговор-то был про очерёдность доступа к блокир... весь текст скрыт [показать]
     
  • 2.42, Еще один аноним, 12:44, 14/09/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Не, просто не все же время работы нитей - это долбежка к одному и тому же ресурс... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.46, letsmac, 21:04, 14/09/2009 [^] [ответить] [смотреть все]  
  • +/
    Естесвенно не всё Но данные например надо кому-нибудь таки отдать, или забрать ... весь текст скрыт [показать]
     
     
  • 4.50, User294, 22:30, 14/09/2009 [^] [ответить] [смотреть все]  
  • +/
    МиФи хороший институт, но одно все-таки не понятно так где же отечественные фай... весь текст скрыт [показать]
     
     
  • 5.51, letsmac, 22:38, 14/09/2009 [^] [ответить] [смотреть все]  
  • +/
    В отечественных компах Ну мы же знаем, что за всем стоит user294 который даже ... весь текст скрыт [показать]
     
     ....нить скрыта, показать (8)

  • 1.22, Erley, 21:20, 12/09/2009 [ответить] [смотреть все]  
  • +2 +/
    Похоже что скоро пингвины будут вынуждены портировать идеи заложенные в этом дис... весь текст скрыт [показать]
     
  • 1.26, kost BebiX, 01:45, 13/09/2009 [ответить] [смотреть все]  
  • –1 +/
    Ага. Типа "я сожру 10 минут на просчитывание нитей, зато сэкономлю тебе 10 секунд", что, впрочем, для работающих по 24 часа в сутки программ не так уж и плохо)
     
  • 1.27, seyko, 03:40, 13/09/2009 [ответить] [смотреть все]  
  • +1 +/
    Народ не прочитал новость... Смысл в получении параллельности для обычной программы. Для этого программа должна быть разбита компилятором на блоки. Поддержка всего этого включена в LLVM и clang от того же Apple. Эти блоки могут выполняться параллельно. При сборке программы компилятор делает вызовы на постановку блоков в очередь на асинхронное выполнение, из коей очереди этот самый диспетчер их и выбирает. Перед этим создав какое-то число threads для выполнения этих блоков.

    PS: вроде Интел тоже работает над внедрением в компиляторы автоматической разбивки программы на куски, которые могут выполняться параллеьно...

     
     
  • 2.31, tesseract, 10:23, 13/09/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Ну суперскалярность в процах и них есть и без хитрых компиляторов Я так понимаю... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.32, frey, 16:00, 13/09/2009 [^] [ответить] [смотреть все]  
  • +/
    При чем здесь суперскалярность Разного уровня понятия Суть в том, о чем написа... весь текст скрыт [показать]
     
     
  • 4.34, pro100master, 20:52, 13/09/2009 [^] [ответить] [смотреть все]  
  • +/
    при том Вся современная компьютерная тормозня из-за непонятного нежелания инжен... весь текст скрыт [показать]
     
     
  • 5.44, pppp, 20:08, 14/09/2009 [^] [ответить] [смотреть все]  
  • +/
    Вы, наверное, плохо отдаёте себе отчёт в том, что здесь совсем недалеко маячит д... весь текст скрыт [показать]
     
     
  • 6.52, letsmac, 22:46, 14/09/2009 [^] [ответить] [смотреть все]  
  • +/
    Барьер Это строб в виду имеется Ну даже без Энштейна повторителей никто не от... весь текст скрыт [показать]
     
  • 6.53, pro100master, 22:54, 14/09/2009 [^] [ответить] [смотреть все]  
  • +/
    да, да, еще и наводки, материалы с примесями и т д Уже давно это один из первых... весь текст скрыт [показать]
     
     
  • 7.54, letsmac, 23:05, 14/09/2009 [^] [ответить] [смотреть все]  
  • +/
    Я типо тоже - но это было 10 лет назад И как помню - 133 Мгц вроде как предел д... весь текст скрыт [показать]
     
     
  • 8.55, pro100master, 00:15, 15/09/2009 [^] [ответить] [смотреть все]  
  • +/
    дсл По началу даже сопли не меняли Что до пределов, спутниковые да и мобильник... весь текст скрыт [показать]
     
  • 7.56, User294, 00:46, 15/09/2009 [^] [ответить] [смотреть все]  
  • +/
    Угу, только вот у CMOS одна из наиболее энергоэффективных схемотехник известных... весь текст скрыт [показать]
     
     
  • 8.57, аноним, 02:24, 15/09/2009 [^] [ответить] [смотреть все]  
  • +/
    смотря как охлаждать реально проложить внутри пластины или криотрубки... весь текст скрыт [показать]
     
     
  • 9.60, User294, 01:15, 17/09/2009 [^] [ответить] [смотреть все]  
  • +/
    Похрену, помрет от локального перегрева - теплопроводность у полупроводников обы... весь текст скрыт [показать]
     
  • 8.58, pro100master, 09:15, 15/09/2009 [^] [ответить] [смотреть все]  
  • +/
    ну вот, опять Интел К ним претензий нет У них и кеш на сравнимой частоте работ... весь текст скрыт [показать]
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor