|  | 14 сентября 2015 | Информационные технологии

Новая память типа "Tardis" позволит создать высокоэффективные процессоры с огромным количеством вычислительных ядер

Временные метки


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

Новая технология, получившая название "Tardis", координирует разделение общих данных внутри многоядерных процессоров намного более эффективно, нежели существующие методы прямого доступа. В результате, количество необходимой для координации действий ядер памяти увеличивается в логарифмической зависимости от количества ядер, а не в прямой пропорции, как это обстоит в настоящее время. Так, будущему чипу с 128 ядрами потребуется всего одна треть от объема памяти, требующейся сопоставимому чипу, основанному на существующей системе прямого доступа. А при увеличении количества ядер до 256 экономия количества памяти составит уже 80 процентов и 96 процентов для чипа с тысячей ядер.

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

Система "Tardis" использует логическо-временную систему диспетчеризации, которая позволяет не только сэкономить объемы памяти, но и существенно повысить эффективность работы системы памяти в целом. Эта система избавляет от необходимости рассылки сообщений всем ядрам об изменениях в общих данных. Вместо этого система генерирует временные метки для каждой вычислительной операции, затрагивающей общие данные, и гарантирует, что все последующие подобные вычислительные операции будут следовать за этими временными метками.

К примеру, если ядро А обновляет некоторые общие данные, он становится временным "владельцем" этих данных и получает соответствующую временную метку. В это время все остальные ядра могут продолжать работать с локальными копиями этих же данных, имеющими более ранние временные метки. Но каждый раз, когда другое вычислительное ядро, скажем ядро В, считывает общие данные, оно должно получить от ядра А своего рода "договор аренды", который обновляется при каждом последующем считывании общих данных. Таким образом получается, что все ядра будут координировать свои действия с "владельцем" части общих данных, постоянно обновляя временные метки, и так будет происходить до тех пор, пока другое ядро в результате арбитража не перехватит владение данными. Такие виртуальные "прыжки во времени" вдохновили исследователей из Массачусетского технологического института назвать свою технологию "Tardis" в честь космического корабля и одновременно машины времени из фантастического сериала "Доктор Кто".

Достаточно простая система временных меток "Tardis" устраняет ограничения и узкие места существующей директивной системы прямого доступа, которая полагается на физическое время. В отличие от системы, базирующейся на директориях, которая позволяет в любой момент времени работать с общими данными только одному вычислительному ядру, система "Tardis" позволяет каждому ядру "переводить" часы своих временных меток, совершая "прыжки во времени", одновременно работая со своими локальными копиями общих данных, а не проводя время впустую, ожидая высвобождения канала доступа к общим данным.

Несмотря на все преимущества новой системы разделения общих данных, внедрение системы "Tardis", если это вообще произойдет когда-нибудь, займет достаточно большое время. Ведь для этого потребуются кардинальные изменения как в архитектуре многоядерных вычислительных систем, так и в окружающей их инфраструктуре, чипсете.




Ключевые слова:
Память, Процессор, Ядро, Общие, Данные, Доступ, Арбитраж, Система, Tardis, Время, Метка, Эффективность, Скорость

Первоисточник

Другие новости по теме:
  • Компания Hewlett Packard представила "The Machine", первый прототип супер ...
  • Машины-монстры: KiloCore - первый в мире чип, на кристалле которого находит ...
  • Разработан первый экспериментальный 36-ядерный чип, имеющий архитектуру сет ...
  • Компания Tilera представляет 72-ядерный процессор, предназначенный для серв ...
  • Корпорация Intel смотрит в сторону процессора с 1000 ядрами.




  • 14 сентября 2015 07:52
    #1 Написал: zlat

    Публикаций: 0
    Комментариев: 481
    после чего все ядра прекращают работу и ждут появления возможности считывания значений из обновленных участков памяти

    так это поэтому все процессы в винде периодически подвисают из-за какого-то одного, который сам и процессор то не загружает?
        
    14 сентября 2015 12:15
    #2 Написал: cmp167

    Публикаций: 0
    Комментариев: 169
    Не знаю почему в винде, но технологии этой сто лет в обед, используется в базах данных, допускает, что некий клиен получит устаревшие данные, для твиттеров это не критично, а вот если один процесс уничтожит привязку другого к блоку на диске в который тот пишет, то будет очень весело потом восстанавливать данные.
        
    14 сентября 2015 14:18
    #3 Написал: FomaNeverujuwij

    Публикаций: 0
    Комментариев: 3811
    Цитата: cmp167
    используется в базах данных

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


    --------------------
        
    14 сентября 2015 18:49
    #4 Написал: Rsa

    Публикаций: 0
    Комментариев: 502
    В настоящее время создание процессоров с большим количеством ядер тормозится необходимостью наличия большого объема высокоскоростной памяти и специальных диспетчеров, которые отслеживают изменения в памяти, производимые каждым вычислительным ядром,

    Чушь полнейшая, от начала и до конца. Во-первых, все желающие могут ознакомиться с количеством вычислительных ядер в современных видеоадаптерах. Их там уже тысячи, и все прекрасно работают с общей памятью и данными, справляясь со своими задачами. Значит подходящие диспетчеры и удачные алгоритмы уже существуют и работают на практике. А во вторых, разработка цпу с большим количеством ядер тормозится прежде всего отсутствием их необходимости: если видеообработка - это очень хорошо распараллеливаемая задача, что и нашло свое подтверждение в структуре видеочипов, то у цпу количество ресурсоемких задач (таких, для которых действительно имеет смысл выделять целые ядра) весьма незначительно, и условный 20-ядерный процессор банально проиграет в производительности 8-ми, или даже 4-ядерному с более сложными и быстрыми ядрами. Просто потому, что не найдется задач, способных равномерно загрузить все 20 ядер. Мало того, что программировать произвольную задачу под параллельные вычисления значительно сложнее чем линейную, так еще и многие алгоритмы в принципе не поддаются распараллеливанию. Математика не позволяет. Вот потому так неторопливо и растет число ядер в процессорах - в этом просто нет практического смысла.
        
    14 сентября 2015 20:07
    #5 Написал: FomaNeverujuwij

    Публикаций: 0
    Комментариев: 3811
    Цитата: Rsa
    вычислительных ядер в современных видеоадаптерах

    Шейдерных и пиксельных конвейеров, а не ядер. Это немного разные вещи.

    Цитата: Rsa
    Просто потому, что не найдется задач, способных равномерно загрузить все 20 ядер

    Ну это Вы расскажите специалистам из области параллельного программирования, которым удается нагрузить под самую завязку миллионы ядер современных суперкомпьютеров.


    --------------------
        
    15 сентября 2015 02:16
    #6 Написал: Rsa

    Публикаций: 0
    Комментариев: 502
    Цитата: FomaNeverujuwij
    Шейдерных и пиксельных конвейеров, а не ядер. Это немного разные вещи.

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

    Цитата: FomaNeverujuwij
    Цитата: Rsa
    Просто потому, что не найдется задач, способных равномерно загрузить все 20 ядер
    Ну это Вы расскажите специалистам из области параллельного программирования, которым удается нагрузить под самую завязку миллионы ядер современных суперкомпьютеров.

    Нагрузить ЧЕМ? Разумеется, есть задачи очень для этого пригодные, которые специально для суперкомпьютеров и пишут. Но они не относятся к числу тех, что решают обычные офисные или домашние ПК. В коих и стоит основная масса производимых процессоров. Вот Вам вполне свежая статья на эту тему:
    http://www.ixbt.com/cpu/intel-ci7-1150-2011-0915.shtml
    Там как раз тестировалось типовое для современных ПК программное обеспечение. Даже в случаях где присутствует оптимизация многопоточности, выигрыш не всегда очевиден. И в этом плане мало что меняется со временем - во множестве задач нет либо особой надобности, либо принципиальной возможности распараллеливать процесс. А иногда это просто намного дороже, нежели написать линейный код.
    Многоядерность конечно помогает когда запущено сразу несколько подобных процессов, однако есть предел разумности - нормальный человек ведь не станет запускать кучу таких задач одновременно, причем, не в режиме ожидания (что бывает нередко), а именно на непрерывный расчет.
        
    15 сентября 2015 08:41
    #7 Написал: FomaNeverujuwij

    Публикаций: 0
    Комментариев: 3811
    Цитата: Rsa
    они не относятся к числу тех, что решают обычные офисные или домашние ПК

    А никто и не говорил, ни в статье, ни в первоисточнике, что эти технологии предназначены для ширпотребовских процессоров. Если технология сдвинется с мертвой точки, то ее первыми, без сомнений, получат всякие Xeon-ы и иже с ними, ориентированные в первую очередь на мощные сервера и суперкомпы, ИМХО.


    --------------------
        
    15 сентября 2015 14:16
    #8 Написал: Zerger

    Публикаций: 0
    Комментариев: 776
    Rsa, Вот так вот Чел. - домашний комп прогрэсс не движет, а удовлетворяет потребности, т.е. широкого потребления - ширпотреб в народе. Кстати у слова "придурок" есть интересное словообразование и по сути оно не такое и оскорбительное.


    --------------------
        
    15 сентября 2015 17:10
    #9 Написал: Rsa

    Публикаций: 0
    Комментариев: 502
    Цитата: FomaNeverujuwij
    Если технология сдвинется с мертвой точки, то ее первыми, без сомнений, получат всякие Xeon-ы и иже с ними, ориентированные в первую очередь на мощные сервера и суперкомпы, ИМХО.

    А я не с этим спорил, это безусловно так и есть. Посмотрите первый мой пост - на что именно я отреагировал и что пытался донести:
    1. Технология многоядерности вполне себе давно и успешно работает, и то, что описано в статье - никакой не прорыв и не открытие. Лишь один из многих вариантов реализации. К тому же еще не опробованный в реальных продуктах. Представлять это так как написано - "раньше много ядер было никак, а теперь станет возможно", это явное преувеличение, если не сказать подтасовка.
    2. Многоядерность сама по себе требуется далеко не всегда и не везде, и наименее эффективна в массовых продуктах. Из чего, скорее всего, последует простое следствие - эта технология вряд ли в обозримом будущем шагнет в массовый сегмент. Если вообще хоть куда-нибудь шагнет.

    Zerger, Если посмотреть чуть глубже, то прогресс двигают разработки, которые востребованы. Иными словами те, за которые платят реальные деньги. И как ни странно - ширпотреб, одно из тех направлений, где деньги будут получены быстро если это окажется нужно потребителю. Как только технология выходит на массовый рынок, если она новая и полезная, отрасль буквально расцветает - возьми хоть компьютеры, хоть радиосвязь, все это было на уровне государств десятки лет, а как стало доступно массе простых людей, так прогресс в этих областях попер семимильными шагами. Так что, не стоит недооценивать значение ширпотреба для реального развития технологий.
    Что касается ваших мыслей о слове "придурок", то, думаю, вы можете оставить их при себе и для себя. Здесь вроде как совсем другое обсуждают.
        
    17 сентября 2015 13:22
    #10 Написал: Zerger

    Публикаций: 0
    Комментариев: 776
    Rsa, Простите если чем то обидел, я не хотел...одни лишь факты: ширпотреб не движет прогрэсс, прогрэсс движут учёные люди.

    П.с. Слово "придурок", означает: "притворятся дураком".


    --------------------
        

    Информация

    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.