birdwatcher: (Default)
[personal profile] birdwatcher
Прослушал доклад Херба Саттера про параллельное программирование. Кого интересует параллельное программирование? А потому, что я по его книге (и по другой, Скотта Мейерса) много лет назад готовился к интервью.

Саттер сказал следующее:
  • раньше, если программа работала медленно, можно было год ничего не делать, и она сама собой начинала работать быстро: появлялся более быстрый процессор.
  • больше более быстрых процессоров не будет.
  • потому что прогресс процессорных технологий состоит в размещении большего количества транзисторов на квадратный сантиметр; но никто не знает, что с ними делать:
  • возрастающее количество транзисторов перестало влиять на быстродействие, потому что кэш еще большего размера уже ничего не дает, и более сложная оптимизация в процессоре тоже уже ничего не дает.
  • и тактовую частоту увеличить тоже нельзя, потому что электрические сигналы, распространяясь со скоростью света, не будут успевать долетать с одного конца чипа до другого (7 GHz).
  • поэтому из этого гигантского количества транзисторов будут собирать все больше и больше процессоров на одном чипе; например, можно прямо сейчас собрать сто штук Пентиумов 1 на чип.
  • так что, если взять медленную программу и год ничего не делать, то через год ее можно будет запустить на вдвое большем количестве процессоров; но это будет так же медленно, поскольку она неправильно написана и не будет их загружать.
  • И вот Саттер [в Майкрософте] придумывает, как встраивать в языки программирования такую поддержку параллелизма, чтобы эффективно писать на неогранниченное количество процессоров; по сравнению с ней обычные threads и locks будут напоминать программирование на ассемблере.
  • потому что машина с восемью процессорами (два слота для четырехкорных процессоров сегодня) - это совершенно другая машина, у которой случайно совпадает набор команд, но программировать ее надо совершенно по-другому.

    Вот:
  • Date: 2007-04-11 09:29 pm (UTC)
    From: [identity profile] averros.livejournal.com
    My current target development chip has 16 64-bit CPUs on it, and gets to 32 GIPS.

    http://cavium.com/OCTEON-Plus_CN58XX.html

    As always, the reality is somewhat different from what software guys like Herb Sutter think. The problem is not what to do with a bunch of symmetrical parallel CPUs, but, rather, in the insufficient memory bandwidth. Which can only be fixed by learning to program efficiently on non-uniform memory access architectures.

    Date: 2007-04-11 09:36 pm (UTC)
    From: [identity profile] birdwatcher.livejournal.com
    Package: 1521 pins FCBGA
    У него натурально 1521 ножка?

    Date: 2007-04-11 10:05 pm (UTC)
    From: [identity profile] averros.livejournal.com
    У него нету ножек вообще:) У Ball Grid Array (BGA) снизу много-много шариков из припоя - они припаиваются прямо к площадкам на плате. Кстати, 1521 - это всего-лишь 39*39.

    http://en.wikipedia.org/wiki/Ball_grid_array

    Date: 2007-04-11 10:23 pm (UTC)
    From: [identity profile] birdwatcher.livejournal.com
    Тоже удобно

    Date: 2007-04-15 06:56 pm (UTC)
    nine_k: A stream of colors expanding from brain (Default)
    From: [personal profile] nine_k
    It seems to me that NUMA architectures are not exactly new. Probably, we don't have enough good books of 'Programming Supercomputers' kind, because today's desktop are 15-years-ago's high end machines.