Тематическая подборка состоит из четырех статей и сопровождается развернутой вводной заметкой приглашенных редакторов. В номере имеется специальный раздел «Опыт исследований в области информационно-коммуникационных технологий» (ICT Research Experience), где опубликована небольшая заметка приглашенных редакторов и две статьи.

Название заметки Кентаро Тоямы и М. Бернандин Диаса совпадает с основной темой номера. На Земле имеется 1,2 млрд пользователей Internet, и столько же людей не может тратить на жизнь более одного доллара в сутки. Технология, которая преобразует жизнь наиболее состоятельных жителей планеты, остается недостижимой для остальных ее обитателей. Будто бы внезапно осознав наличие этого абсолютного разрыва, развитые страны в последнее десятилетие инициировали массу проектов, направленных на применение ИТ для поддержки социально-экономического развития. Каково значение ПК для сельских школ? Как разработать интерфейс, доступный для неграмотных рабочих-мигрантов? Могут ли ИТ положительно повлиять на жизнь фермера, зарабатывающего доллар в день? Это лишь небольшая часть вопросов, которыми сегодня задаются ученые и практики.

Область информационно-коммуникационные технологии для развития (information and communication technologies for development, ICTD) включает несколько секторов— правительства, научное сообщество, начинающие компании, крупные корпорации, некоммерческие и неправительственные организации— и привлекает интерес специалистов из различных дисциплин: антропология, социология, экономика, политология, проектирование, конструирование, компьютерная наука и т.д. Как и во многих других междисциплинарных областях, границы ICTD расплывчаты, а задачи— многочисленны, тем не менее, можно определить ключевые компоненты, определяющие суть. Начнем с буквы D в аббревиатуре ICTD— с развития.

История развития как международной активности началась после Второй мировой войны с образованием Организации объединенных наций, Международного валютного фонда и Всемирного банка. После окончания войны США, осознавая потребность в наличии политически независимых и экономически развитых партнеров, предприняли действия по социально-экономическому восстановлению Европы (план Маршалла) и Японии путем ее оккупации. Во всем мире бывшие колонии западных стран обрели независимость и поставили перед собой цели экономического роста, а США и СССР обеспечивали помощь странам «третьего мира», чтобы оградить их от влияния другой стороны. Все это заложило основу активности в мировом масштабе, направленной на помощь бедным странам в избавлении от нищеты.

По существу, именно борьба с нищетой— основная цель международного развития. Так, в восьми целях ООН (Millennium Development Goals, www.un.org/millenniumgoals), помимо прочего, явно ставятся задачи искоренения к 2015 году нищеты и голода, установления равенства между полами и обеспечения базового уровня здравоохранения и всеобщего начального образования. В подобные списки часто включаются дополнительные цели: жилищные условия, обеспечение водой, санитария и, все чаще,— доступ к информации, который является одним из главных лозунгов ICTD.

Что же составляет информационно-коммуникационные технологии в области ICTD? Если говорить буквально, все, что угодно, начиная с африканских говорящих барабанов, но в контексте ICTD— это персональные компьютеры, мобильные телефоны и Internet. Центральную роль в ICTD играют новейшие технологии, такие как КПК и беспроводные сети, в то время как общепризнанные технологии телевидения, радиовещания и проводной телефонии, хотя и не исключаются в целом, занимают периферийные позиции. Одной из причин этой ситуации является то, что интерес к ICTD в последнее десятилетие неуклонно возрастал— некоторые исследователи и практики начинают обнаруживать новые способы применения укоренившихся технологий.

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

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

ICTD охватывает правительства, многосторонние организации, такие как ООН, бесприбыльные и неправительственные организации, которые десятилетиями работают с бедными сообществами и которых интересует, как новая технология может ускорить достижение поставленных ими целей. Более неожиданно участие частного сектора; при наличии корпоративной общественной ответственности в сочетании с надеждами на образование новых рынков частный сектор, стремясь к «завоеванию успеха в основании пирамиды», анализирует, как его продукты и услуги могут отвечать потребностям малообеспеченных семей. Некоторые даже считают, что бизнес, являясь двигателем развития, становится единственным средством, обеспечивающим экономические изменения.

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

Первая регулярная статья подборки, написанная Ричардом Хиксом, называется «ICT4D 2.0: следующий этап применения ИКТ для международного развития» (ICT4D 2.0: The Next Phase of Applying ICT for International Development).

Смена этапа предоставляет профессионалам благоприятные возможности в области информатики и открывает новые рынки для поставщиков ИКТ. Однако автор задается вопросом: почему должны быть приоритетны приложения, приносящие пользу беднейшим слоям населения развивающихся стран?

Во-первых, в пользу этого имеется моральный аргумент. Большинство профессионалов в области ИТ проводит свою жизнь, обслуживая потребности богатейших компаний и личностей: как когда-то сказал грабитель банков Вилли Саттон (en.wikipedia.org/wiki/Willie_Sutton), «я там, где деньги». Попытки добиться незначительного повышения производительности труда на предприятиях, которые уже относительно хорошо работают, или сберечь несколько минут жизни занятого горожанина утрачивают этическую значимость по сравнению с потенциальными выгодами от применения новых технологий для решения планетарных проблем. Малоимущие во всем мире живут на передовой линии этих проблем, более всего страдая от изменения климата, военных конфликтов, терроризма, болезней и исчерпания ресурсов.

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

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

Все это разъясняет смысл компонента 4D в аббревиатуре ICT4D, но как быть с ее первой половиной? Стандартным объяснением потребности инвестиций в информационно-коммуникационные технологии, а не в технологию трубчатых колодцев, например, является то, что инвестировать нужно в обе технологии, потому что для развития требуются и вода, и информация. Более агрессивный ответ можно сформулировать на макроуровне: экономическая, общественная и политическая жизнь в XXI веке будет все более цифровой. Можно дать ответ на этот вопрос и на микроуровне: спросите у бедняков или посмотрите, как они тратят свои небольшие деньги,— часто их приоритетом является ИКТ.

Авторами следующей статьи— «Этапы разработки технологии для всемирного развития» (Stages of Design in Technology for Global Development)— являются Джонатан Доннер, Рикин Гандхи, Пол Джэвид, Индрани Медхи, Аишварья Ратан, Кентаро Тояма и Раджеш Веераргаван.

Создание цифрового контента по передовому сельскохозяйственному опыту

Борьба с нищетой— непрерывный процесс, требующий терпения, особенно от инженерно-технических специалистов. В исследовательской области ICT4D инженеры работают вместе со специалистами в области общественных наук, создавая новые решения проблем, стоящих перед беднейшими слоями населения земного шара. В большинстве случаев эти проблемы невозможно разрешить лишь за счет технологий. Нетрудно сформулировать технические требования для установки ПК с доступом в Internet в трущобах или глухих деревнях, но отдельной серьезной проблемой является создание такой технологии, которая действительно оказывала бы осмысленное влияние на жизнь рабочего-мигранта или бедного фермера. Для решения этой проблемы требуется анализ особенностей местной экономики, культурных норм и потребностей населения.

В Microsoft Research India группа Technology for Emerging Markets каждый день сталкивается с проблемами, которые редко поддаются простым решениям. Для этого требуется значительная работа в полевых условиях, точное определение работающих и неработающих частей промежуточных решений и стремление к достижению простых решений. В статье приводится ряд примеров решения подобных проблем в Индии.

Гэри Марсден представил статью «Навстречу разработкам, допускающим их совершенствование пользователями» (Toward Empowered Design).

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

Один из примеров— эволюция технологии цифровых фотоаппаратов. Вначале они могли фиксировать и сохранять всего восемь снимков с высоким разрешением. Современные цифровые камеры усовершенствованы до такого уровня, что в большинстве фотографических приложений могут заменять кинокамеры. Кроме того, наличие Web-ресурсов, подобных Flickr, эффективно решает проблему совместного использования и распространения цифровых фотоснимков. Цифровые фоторамки стали достаточно дешевыми, чтобы можно было позволить иметь их дома. Эти рамки могут автоматически и немедленно отображать изображения, сделанные с помощью цифрового фотоаппарата в любой точке земного шара, где имеется беспроводной доступ к Internet.

Однако закон Мура иногда может побуждать разработчиков отказываться от альтернативных проектных решений— если что-то не работает так, как требуется, нужно просто подождать выпуска следующей версии оборудования. Однако можно создавать творческие решения с использованием уже существующих платформ. Исследовательская группа Кейптаунского университета предлагает концепцию разработок, допускающих их совершенствование пользователями. При таком подходе любая система должна разрабатываться таким образом, чтобы конечные пользователи имели возможность модифицировать ее в соответствии со своими потребностями. На первый взгляд, этот подход ничем не отличается от подхода Open Source. Однако в Африке найдется не так уж много людей, которые смогут модифицировать пакеты бесплатного программного обеспечения в соответствии со своими нуждами. Поэтому исследователи из Кейптауна пытаются создать технологию, которая могла бы применяться специалистами прикладных областей для решения локальных проблем во многом в духе языков четвертого поколения 80-х.

Последняя статья основной тематической подборки называется «Развертывание беспроводной телемедицинской системы для сельской местности: эксперименты с устойчивостью» (Deploying a Rural Wireless Telemedicine System: Experiences in Sustainability). Ее авторы— Сонеш Сурана, Рабин Патра, Сергиу Недевши и Эрик Брювер.

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

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

 Точильщик ножей и потенциальный модератор социальной сети на улицах Калькутты

Опыт авторов, являющихся членами исследовательской группы Technology and Infrastructure for Emerging Regions (TIER, tier.cs.berkeley.edu/wiki/Home) Калифорнийского университета в Беркли, показывает, что для устойчивости любого ИКТ-проекта требуется соблюдение трех важных принципов: оптимизация существующей системы, финансовая самообеспеченность и эксплуатационная самообеспеченность. Важность следования этим принципам иллюстрируется на примере участия группы TIER в проекте Aravind Eye Care System (www.aravind.org). 

Приглашенными редакторами специального раздела «Опыт исследований в области ИКТ» стали Карин Брейтман и Майк Хинчи. Название их вводной заметки снова совпадает с названием темы раздела. Здесь описывается опыт Бразилии и Ирландии, экономика которых многое выиграла от участия в мировом процессе глобализации и развития индустрии ИКТ.

Перед Бразилией, которая занимает пятое место в мире по площади территории и численности населения, стоят существенные проблемы. Большие части страны, в особенности примыкающие к Амазонке, мало населены, в них полностью отсутствует базовая инфраструктура. Но несмотря на то, что полным нормам грамотности соответствует лишь 28% населения (один из самых низких показателей для стран развитого мира), Бразилия является одним из лидеров в компьютерной индустрии. Бразильское компьютерное сообщество Sociedade Brasileira de Computacao (SBC), одно из наиболее уважаемых в мире и входящее в состав Международной федерации по обработке информации (International Federation for Information Processing, IFIP, www.ifip.or.at/homeintro.html), в 2008-м году отмечает свой 30-летний юбилей. Все без исключения факультеты компьютерных наук бразильских университетов высоко котируются, а некоторые из них можно с уверенностью отнести к вузам мирового класса.

С другой стороны, Ирландия— страна с небольшой территорией и населением всего около 4 млн человек. В 90-е годы ее стали называть «кельтским тигром» за выдающееся положение и быстрый рост, аналогичный росту Китая. Ирландия пользуется своим географическим положением, высокообразованной рабочей силой, распространенностью английского языка (универсального языка ИКТ) и наличием налоговых льгот для начинающих компаний, занимающихся локализацией программных продуктов и аутсорсингом. Однако сегодня рабочая сила в Ирландии перестала быть дешевой. Стало очевидно, что индустрия, основанная на локализации и аутсорсинге, не может процветать бесконечно, и что Ирландия, которая превратилась из одной из беднейших стран Евросоюза в страну, занимающую второе место в мире (после Люксембурга) по объему валового национального продукта на душу населения, должна перестроиться, чтобы продолжать использовать свою позицию и удерживаться на передней линии развитых технологий.

Статью специального раздела под названием «Фундаментальные исследовательские проблемы в области компьютерной науки в Бразилии» (Grand Research Challenges in Computer Science in Brazil) представила Клаудия Баузер Медейрос.

Что общего у следующих тем исследовательских работ: анализ производительности беспроводной сети с миллионами узлов; предсказание отрицательных последствий человеческих поселений на природу озер; изучение долговременных воздействий новых лекарств на обмен веществ человека; оценка влияния полетов колибри на опыление цветов в заданной местности? Все это — примеры тем возможных заявок для участия в исследованиях в рамках одной из пяти фундаментальных исследовательских проблем, сформулированных SBC в 2006 году (sistemas.sbc.org.br/ArquivosComunicacao/Desafios_ingles.pdf). Они тесно связаны с задачами, решение которых окажет технологическое, общественное и экономическое воздействие на Бразилию.

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

Вторая статья специального раздела называется «Создание ирландского софтверного тигра» (Engineering the Irish Software Tiger). Ее автор— Кевин Райан.

Ирландия переживает бурный экономический рост. Однако не все полностью осознают, что центральную роль в этом явлении играют информационно-коммуникационные технологии, в особенности программное обеспечение. В течение последних тридцати лет в Ирландии сформировались технологические кластеры в различных секторах рынка: производство интегральных схем (Intel, Analog Devices), инфраструктура телекоммуникаций (Motorola, Tellabs, Ericsson), программное обеспечение (Microsoft, Borland, Lotus, Oracle). Имеется более 900 софтверных компаний, на которые непосредственно работают 32 тыс. человек. При общем ежегодном доходе в 12 млрд евро эти компании обеспечивают 10% валового национального дохода страны.

В стране работают девять из десяти крупнейших в мире софтверных компаний, что делает ее крупнейшим в мире экспортером программного обеспечения. В 2007 году Ирландия экспортировала продукты и услуги ИКТ на общую сумму в 50 млрд евро. 40% коробочных программных продуктов и 60% программного обеспечения для поддержки бизнеса, продаваемого в Европе, происходят из Ирландии. Чтобы сохранить позиции в изменяющемся мире, ирландское правительство предпринимает активные действия для стимулирования исследований и разработок в области ИКТ.

Пикоджоуль ватт бережет

Формально темой июльского 2008 года номера журнала Computer (IEEE Computer Society, Vol. 41, No. 7, July 2008) являются архитектуры и методы оптимизации процессоров, однако в этот раз полноценная подборка статей отсутствует: теме соответствуют три больших статьи, подобранные без участия приглашенных редакторов.

Вильям Долли, Джеймс Бэлфур, Дэвид Блэк-Шейфер, Джеймс Чен, Кертис Хартинг, Вишал Парих, Джонгсу Пак и Дэвид Шеффилд представили статью «Эффективная встроенная вычислительная обработка» (Efficient Embedded Computing).

Для встроенных вычислительных приложений требуется как эффективность, так и гибкость: основная доля вычислений сегодня производится не в настольных ПК, ноутбуках или центрах обработки данных, а во встроенных медиаустройствах. Ежегодно в мире продается более миллиарда мобильных телефонов, а телефон, поддерживающий функции 3G, выполняет каждую секунду больше операций, чем типичный процессор настольного компьютера. Медиаустройства производят едва ли не больше вычислений, чем самые быстрые суперкомпьютеры, потребляя при этом на несколько порядков меньше энергии. Так, для обеспечения работы приемника мобильного 3G-телефона требуется выполнять 35-40 гигаопераций в секунду (giga operations per second, GOPS), а для работы со 100-мегабитным каналом, основанном на мультиплексировании с ортогональным частотным разделением сигналов (orthogonal frequency-division multiplexing, OFDM), требуется производительность 210-290 GOPS.

Пиковая производительность типичного настольного ПК составляет несколько GOPS, а для большинства приложений требуется гораздо меньшая производительность. Возможности вычислительной обработки в мобильных телефонах еще более впечатляют, если вспомнить о том, что этот уровень производительности должен обеспечиваться портативным блоком с максимальным рассеянием мощности в пределах одного ватта. Простые вычисления показывают, что для обеспечения работы 3G-приемника требуется эффективность в 25 милливатт на гигаоперацию, или 25 пикоджоулей на операцию, а для OFDM-приемника— 3-5 пикоджоулей на операцию.

Жесткие требования к производительности и эффективности вынуждают использовать для вычислений в медиаустройствах «зашитую логику» в форме специализированных интегральных схем (application specific integrated circuit, ASIC). Тщательно разработанная ASIC может обеспечивать эффективность в 5 пикоджоулей на операцию при использовании КМОП-технологии. В отличие от этого очень эффективные встраиваемые процессоры и цифровые сигнальные процессоры требуют в 50 раз больше энергии для выполнения каждой операции, а процессоры популярных ноутбуков — в 4000 больше. Эффективность этих программируемых процессоров просто не отвечает требованиям встраиваемых приложений, что и вынуждает разработчиков использовать «зашитую логику».

Использование ASIC позволяет удовлетворить требования встраиваемых приложений к эффективности потребления энергии, однако они не отличаются гибкостью, и их трудно разрабатывать. Разработка типичной ASIC занимает два года и обходится в 20 млн долл., что делает приемлемым использование ASIC только в массовых приложениях. Длительность разработки приводит к тому, что функциональные возможности готовых к использованию ASIC сильно отстают от алгоритмов, модемов и кодеков. Отсутствие гибкости приводит к увеличению плотности и сложности. Скажем, если система должна поддерживать несколько радиоинтерфейсов, то для каждого из них должен иметься отдельный встроенный модем, несмотря на то, что в каждый конкретный момент используется только один из них. Если бы требованиям эффективности отвечал какой-либо программируемый процессор, то все интерфейсы можно было бы реализовать с использованием одного аппаратного ресурса путем выполнения на нем разных программ.

По мере того как развиваются медиа-приложения, усугубляются и проблемы ASIC. Усложняющиеся приложения труднее реализовывать в виде «зашитой логики», и они выставляют более динамичные требования— например, наличие нескольких режимов функционирования. Все быстрее совершенствуются алгоритмы, что делает проблематичным их «замораживание» в зашитых реализациях. Встраиваемым приложениям все больше требуется гибкость наряду с эффективностью.

Типичный встраиваемый RISC-процессор расходует 70% энергии на выборку данных и лишь 6% энергии уходит на выполнение вычислений, из которых только 59% расходуется на полезные вычисления. Остальное составляют накладные расходы: пересчет индексов циклов и вычисление адресов памяти. Столь высокие накладные расходы проистекают от неэффективного способа обеспечения данных и команд для их арифметических устройств: на каждую арифметическую операцию, на выполнение которой требуется 10 пикоджоулей энергии, процессор расходует 70 пикоджоулей на выборку команд и 47 пикоджоулей на чтение и запись данных.

Энергия, требуемая для обеспечения данных и команд арифметическим устройствам традиционных встраиваемых RISC-процессоров, в 15-20 раз больше энергии, требуемой для выполнения самой команды. Из этого становится ясно, что для повышения эффективности программируемых процессоров нужно сосредоточиться на выборке данных и команд. Потребление энергии можно снизить в 50 раз за счет использования более глубокой иерархии с явным управлением, устранения служебных команд и раскрытия конвейера. Поскольку наибольший расход энергии для обеспечения команд периодически происходит в кэше команд, для сокращения потребления энергии процессор должен обеспечивать команды без их поиска в энергоемком кэше. Во многих отношениях набор регистров команд (instruction register file, IRF)— это всего лишь еще один уровень иерархии памяти команд, и логично было бы задать вопрос, почему этот уровень не включался в архитектуру процессоров раньше? Исторически кэши использовались для повышения производительности, а не для снижения энергопотребления. В статье описывается процессор с низким потреблением энергии, команды которого поставляются в арифметическое устройство не из кэша, а из небольшого массива IRF. Расход энергии на чтение одного бита команды из этого массива регистров команд составляет 0,1 пикоджоуля против 3,4 пикоджоулей в случае использования кэша.

Авторами статьи «Закон Амдала в эпоху многоядерных архитектур» (Amdahl’s Law in the Multicore Era) являются Марк Хилл и Майкл Марти.

Наступление эпохи многоядерных архитектур является переломной точкой в истории компьютеров. Поставщики компьютеров объявляют о выпуске кристаллов с несколькими процессорными ядрами (в планах частое удвоение числа ядер в кристалле). Такие решения называют «мультипроцессорами на кристалле» или «многоядерными кристаллами».

Разработчики многоядерных кристаллов сталкиваются с большим числом степеней свободы, чем в одноядерных случаях. Им требуется отвечать на ряд дополнительных вопросов. Сколько должно быть ядер? Следует ли использовать простые конвейеры или мощный «множественный» (multi-issue) конвейер? Должны ли все ядра иметь одну и ту же микроархитектуру? Кроме того, в то же время разработчики должны решать проблему управления питанием от динамических и статических источников. На эти вопросы нелегко отвечать даже для сегодняшних кристаллов с двумя-восемью ядрами, а в будущем это станет еще труднее.

Авторы полагают, что при разработке будущих многоядерных кристаллов нужно руководствоваться законом Амдала, который был сформулирован для случая распараллеливания программы на n процессорах следующим образом. Если имеется некоторая вычислительная задача, решаемая по такому алгоритму, что долю f от общего объема вычислений можно получить только за счет последовательной обработки, а долю 1-f можно распараллелить идеально, то ускорение, которое можно получить при использовании n процессоров, ограничено величиной 1/((1-f) + f/n).

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

Последнюю статью тематической подборки— «Warp-обработка: динамическая трансляция бинарного кода в схемы FPGA» (Warp Processing: Dynamic Translation of Binaries to FPGA Circuits)— написали Фрэнк Вахид, Грег Стигг и Роман Лисецки.

Программное обеспечение состоит из бит, загружаемых в заранее изготовленное аппаратное устройство. Биты традиционного программного обеспечения микропроцессоров представляют собой последовательные команды, выполняемые программируемым микропроцессором. В отличие от этого, программное обеспечение программируемой логической матрицы (field-programmable gate array, FPGA)— это схема, отображаемая в реконфигурируемую логическую структуру FPGA. Оба вида программного обеспечения освобождают разработчиков от потребности конструировать аппаратуру. Вместо этого для реализации требуемых вычислений в заранее изготовленное аппаратное устройство просто загружаются биты.

Если вычислениям соответствует схема FPGA, то они могут производиться быстрее, чем при использовании набора последовательных команд, потому что в первом случае допускается больше параллелизма, на уровне процессов, а не бит. Например, при реализации операции изменения порядка бит (bit reversal) в виде схемы для выполнения операции потребуется всего один такт, а при выполнении требуемых команд в микропроцессоре это займет десятки тактов. Арифметическое вычисление с двадцатью умножениями может быть выполнено на FPGA за два такта, если в FPGA имеется 10 устройств умножения, а на микропроцессоре для этого потребуется не менее 20 тактов. Для выполнения вычисления уровня процесса с десятью независимыми потоками 100-тактовых потоков потребуется только 100 тактов, если каждый поток реализуется в виде отдельной схемы, в то время как при выполнении на одном микропроцессоре это займет не менее 1000 тактов.

Ряд коммерческих и исследовательских инструментальных средств направлены на компиляцию популярных языков программирования для микропроцессоров (Cи, C++, Java) в схемы FPGA. Во многих таких компиляторах используется профилирование для обнаружения программных ядер (небольших участков программ, которые больше всего используются при выполнении программы) и их отображения на схемы FPGA, в то время как оставшаяся часть программы выполняется в микропроцессоре. Однако основным барьером на пути массового признания таких средств является трудность их интеграции в установившиеся процессы разработки программного обеспечения микропроцессоров.

На устранение этих барьеров направлена Warp-обработка, позволяющая сделать FPGA невидимыми для разработчиков программного обеспечения. В этом случае вычислительная платформа динамически выполняет компиляцию в схемы FPGA. Архитектура Warp-компьютера включает микропроцессор, FPGA, разделяемые кэши команд и данных, профилировщик и динамические средства САПР. Разработчик загружает программу в память микропроцессора в виде стандартного исполняемого двоичного кода. Профилировщик динамически обнаруживает ядра в двоичном коде, динамические САПР-средства автоматически отображают эти ядра в схемы FPGA, и корректор двоичного кода динамически модифицирует программу для использования новых схем. После этого выполнение программы внезапно ускоряется в два раза, в 10 раз и даже больше. Другими словами, происходит time warp- «разрыв» времени исполнения программы. (Такое значение слова warp пришло из научной фантастики, где space warp означает «нуль-транспортировку», поэтому не очень понятно, какой русский эквивалент могут иметь введенные Фрэнком Вахидом термины warp processing и warp computer.)

Вне тематической подборки в июльском номере опубликованы еще три большие статьи. Авторами статьи «Автоматизация устранения дефектов в кремниевых кристаллах на уровне пластины» (Automating Postsilicon Debugging and Repair) являютcя Кай Чанг, Игорь Марков и Валерия Бертокко.

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

Для многих современных продуктов время жизни на рынке составляет только несколько лет, а потому задержка, связанная с повторным изготовлением кристалла, может существенно сократить доход или даже погубить продукт. Согласно опубликованным оценкам, расходы на устранения дефектов в кремниевом кристалле на уровне пластины могут составлять 15-20 млн долл., и этот этап может длиться до шести месяцев, хотя для решения этой проблемы разработаны автоматизированные средства.

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

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

Статью «SIISAM: модель для безопасных неоднородных информационных систем» (SIISAM: A Model for Secure Inhomogeneous Information Systems) написали Кун Ванг, Жонгжай Йин, Лихуа Жоу, Фенг Юань и Зенксин Ли.

Большие и сложные информационные системы, используемые, например, в электронном правительстве, в банках и вооруженных силах, содержат много унаследованных приложений, созданных в разное время и для разных целей. Для координации проектирования, разработки, использования и сопровождения этих так называемых «неоднородных информационных систем» (inhomogeneous information system, IIS) требуется гибкая и расширяемая архитектура, которая смогла бы обеспечить бесшовную интероперабельность приложений и безопасность при использовании новых компонентов.

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

Для решения этой проблемы исследователи, участвующие в проекте EEDP (E-Government Experimental and Demonstration Project), разработали «модель архитектуры безопасных неоднородных информационных систем» (secure inhomogeneous information system architecture model, SIISAM). Основные черты SIISAM таковы:

  • это практическая, а не теоретическая модель, предназначенная для регулирования процесса построения реальной IIS;
  • обеспечиваются важные сервисы поддержки безопасности— шифрование, аутентификация, авторизация, обнаружение вторжений, аудит и антивирусная защита, а также восстановление после отказов для обеспечения непрерывной работы;
  • для поддержки интероперабельности и расширяемости используется технология Web-сервисов;
  • модель является многоуровневой, а не ориентированной на процессы, что облегчает проектирование, разработку и внедрение системы.

Описываемая модель будет положена в основу будущей системе электронного правительства КНР.

Автор последней большой статьи— Рональд Лоуи; статья называется «Хвала сценариям: настоящая практичность программирования» (In Praise of Scripting: Real Programming Pragmatism).

Сегодня подтверждается справедливость смелого предвидения, содержащегося в статье создателя языка Tcl Джона Оустерхаута «Сценарии: программирование высокого уровня XXI века» (John Ousterhout, Scripting: Higher Level Programming for the 21st Century), опубликованной в журнале Computer в 1998 году. Забавно, что в 2005 году журнал IEEE Software напечатал статью Диомидиса Спинеллиса «Java делает скриптовые языки неуместными» (Diomidis Spinellis, Java Makes Scripting Languages Irrelevant?), содержащую стандартные нападки на языки сценариев. Эта статья интересна тем, что автор, как кажется, сам не соглашается с ее названием. В заключении статьи больше внимания уделяется восхвалению скриптовых языков, а не рассуждениям о развитии языка Java в направлении простоты и удобства использования. Еще не ясно, что является лучшей рекомендацией для скриптовых языков: долговечность текста Оустерхаута или нерешительность этой критики.

Больше всего потрясает то, что академическое сообщество продолжает отрицать наличие изменений в практике программирования, привнесенных скриптовыми языками. Академические ученые, очарованные объектно-ориентированной парадигмой, не готовы к принятию концепции LAMP (Linux— Apache— MySQL— Perl/Python/Php) и твердо полагают, что для улучшения практики программирования требуется как можно больше теории программирования, поэтому они глухи к доводам Оустерхаута. Частично ситуация объясняется тем, что скриптовые языки развивались в тени объектно-ориентированных. Кроме того, направление скриптового программирования формировалось от одного языка к другому. Те люди, которые выступали в поддержку философии сценарного программирования, больше всего хвалили свой любимый язык (включая Оустерхаута, который большую часть своей статьи восхваляет Tcl). Сегодня имеется много вопросов по поводу скриптового программирования. Пригодны ли скриптовые языки для обучения программированию на первых курсах университетов? Есть ли место для сценарного программирования в корпоративных приложениях или приложениях реального времени? Поддаются ли проекты, выполненные с использованием скриптового подхода, существенному масштабированию? Автор доказывает, что на все эти вопросы теперь можно отвечать утвердительно.

Всего доброго, до следующей встречи, Сергей Кузнецов, kuzloc@ispras.ru.


Схема. Функционирование Warp-процессора