Июльский номер журнала Computer (IEEE Computer Society, Vol. 48, No. 7) посвящен системам, способным к самоанализу — сбору данных о своем состоянии, поведении и объеме выполненной работы, а также к «самовыражению» или адаптации поведения в зависимости от сведений, полученных в процессе самоанализа.
В статье «Cети камер с самоанализом и самовыражением» (Self-Aware and Self-Expressive Camera Networks) Бернард Риннер (Bernhard Rinner), Лукас Эстерле (Lukas Esterle), Дженнифер Симоньян (Jennifer Simonjan), Георг Небехай (Georg Nebehay), Роман Пфлюгфельдер (Roman Pflugfelder), Густаво Фернандес Домингес (Gustavo Fernandez Dominguez) и Питер Льюис (Peter Lewis) описывают адаптивную систему видеонаблюдения, меняющую поведение в зависимости от результатов самомониторинга.
Широкое применение сегодня получили распределенные системы, состоящие из многочисленных автономных узлов, общающихся через сеть. В статье «Коллективный самоанализ и самовыражение в распределенных системах» (Toward Collective Self-Awareness and Self-Expression in Distributed Systems) Мишель Аморетти (Michele Amoretti) и Стефано Каньони (Stefano Cagnoni) показывают, как реализовать упомянутые в заглавии концепции с помощью иерархического подхода и рекурсии и тем самым улучшить КПД и масштабируемость распределенной системы.
Концепция «туманных» вычислений (fog computing) подразумевает перенос вычислительной нагрузки на периферию сети — выполнение распределенных вычислений на клиентских устройствах, в отличие от облачных вычислений, которые происходят в ЦОД. В публикации «Преимущества самоанализа и внимания для «туманных» вычислений» (The Benefits of Self-Awareness and Attention in Fog and Mist Computing) Юрго Преден (Jurgo S. Preden), Калле Таммемаэ (Kalle Tammemae), Аксель Янтш (Axel Jantsch), Майро Лейер (Mairo Leier), Андри Риид (Andri Riid) и Эмине Калис (Emine Calis) демонстрируют применение «туманных вычислений» для непрерывного анализа потока информации, поступающей от группы датчиков системы мониторинга работы сердца.
Планирование ресурсов высокопроизводительных ЦОД приобретает все большую важность в контексте роста цифровой экономики и расширения применения облачных вычислений. В статье «Управление критически важными рабочими задачами в виртуализованных ЦОД с самоанализом» (Self-Expressive Management of Business-Critical Workloads in Virtualized Datacenters) Винсент ван Бек (Vincent van Beek), Йессе Донкервлит (Jesse Donkervliet), Тим Хегеман (Tim Hegeman), Стефан Хугтенбург (Stefan Hugtenburg) и Александру Иосуп (Alexandru Iosup) предлагают архитектуру управления ресурсами ЦОД с механизмами самоанализа и самовыражения. Эффективность подхода показана на примере эксперимента, проведенного с реальными рабочими нагрузками.
Нерегулярные приложения: от архитектур к алгоритмам
Тема августовского Computer (IEEE Computer Society, Vol. 48, No. 8) — нерегулярные приложения, код, характеризующийся непредсказуемым доступом к памяти, зависимостью порядка выполнения от входных данных и мелкодисперсными пересылками информации. Проблемы, которые создают алгоритмы с подобным поведением, можно решить только с помощью комплексного подхода, охватывающего все уровни программного и аппаратного стека. В последние десятилетия системы высокопроизводительных вычислений обеспечили стремительное развитие научных приложений, позволив моделировать физические и химические явления в беспрецедентном масштабе, а с ростом доступности Больших Данных расширяется применение аналитики. Экспоненциальный рост срезов данных из всевозможных источников влияет на все отрасли: финансы, госсектор, здравоохранение, медицину, безопасность, транспортировки, производство, коммерцию и связь. Извлечение осмысленных сведений из этой лавины данных требует оптимизации HPC-систем для алгоритмов дедукции, машинного обучения и обработки графов.
В публикациях номера анализируются варианты решения проблем, обусловленных нерегулярным поведением, на различных уровнях системного стека.
В статье «Реорганизация данных в памяти для нерегулярных задач обработки больших объемов данных» (In-Memory Data Rearrangement for Irregular, Data-Intensive Computing) Скотт Ллойд (Scott Lloyd) и Майя Гокхейл (Maya Gokhale) рассматривают поведение нерегулярных алгоритмов на самом нижнем системном уровне. Авторы предлагают аппаратную архитектуру, которая динамически реструктурирует данные в памяти, оптимизируя их для кэширования. Метод дает преимущества по скорости и энергозатратам. Описывается практическая реализация на программируемой логической матрице с использованием модели памяти Hybrid Memory Cube.
В статье «Оптимизация решения задач линейной алгебры с разреженными матрицами для анализа обширных графов» (Optimizing Sparse Linear Algebra for Large-Scale Graph Analytics), авторами которой являются Даниэле Буоно (Daniele Buono), Джон Ганнелс (John Gunnels), Синьюй Цюэ (Xinyu Que), Фабио Чеккони (Fabio Checconi), Фабрицио Петрини (Fabrizio Petrini), Тайцзин Туань (Tai-Ching Tuan) и Крис Лонг (Chris Long), описываются реализованные на архитектурном уровне средства оптимизации для HPC-систем на процессоре IBM Power8. Разреженные матрицы — классический пример нерегулярной структуры данных. В статье, в частности, рассматриваются оптимизации задач умножения разреженной матрицы на вектор и перемножения разреженных матриц общего вида с компромиссами между количеством обращений к данным и локальностью в основной и кэш-памяти.
Публикация «Масштабирование сред выполнения нерегулярных алгоритмов для крупномасштабных систем NUMA» (Scaling Runtimes for Irregular Algorithms to Large-Scale NUMA Systems), которую представили Эндрю Ленхарт (Andrew Lenharth) и Кешав Пингали (Keshav Pingali), описывает систему автоматизации распараллеливания нерегулярных алгоритмов, созданных с применением модели последовательного программирования, которую можно реализовать на любом объектном языке (в статье используется C++). Авторы показывают, насколько эффективно их система позволяет выполнять нерегулярные приложения на машинах с архитектурой NUMA.
Махантеш Халаппанавар (Mahantesh Halappanavar), Алекс Потэн (Alex Pothen), Арифул Азад (Ariful Azad), Фредерик Манне (Frederik Manne), Йоханнес Ланггут (Johannes Langguth) и Ариф Хан (Arif Khan) затрагивают важные алгоритмические проблемы в статье «Уроки совместной разработки, усвоенные при реализации сопоставления графов на многопоточных архитектурах» (Codesign Lessons Learned from Implementing Graph Matching on Multithreaded Architectures). В ней исследуется взаимозависимость между структурой алгоритмов и архитектурными особенностями на примере задачи сопоставления графов.
Запуск Интернета вещей
Настало время настроить и «включить» Интернет вещей — среду, которая вводит совершенно новую систему взаимоотношений людей с техникой. Термин IoT сегодня одинаково широко употребляется в научных публикациях и СМИ. Что он на самом деле означает, и в чем причина его популярности? Упрощенно говоря, идея IoT в том, что практически любой повседневный предмет можно заставить «поумнеть», соединив с Интернетом. Теме «запуска» Интернета вещей посвящен Computer за сентябрь (IEEE Computer Society, Vol. 48, No. 9).
В статье «Агрегатное программирование для Интернета вещей» (Aggregate Programming for the Internet of Things) Джейкоб Бил (Jacob Beal), Данило Пьянини (Danilo Pianini) и Мирко Вироли (Mirko Viroli) обсуждают, как обеспечить высокий уровень абстракции при программировании систем Интернета вещей. Реализовать эффективную координацию работы большого количества устройств Интернета вещей с помощью традиционных методов программирования трудно — в частности, из-за проблем, обусловленных тесной связью функциональности с расстоянием между устройствами. Авторы описывают фреймворк на основе предложенных ими ранее математических концепций, который предоставляет API, обеспечивающий простоту программирования коллективного поведения устройств Интернета вещей.
В статье «Проектирование и развертывание платформы тестирования приложений Интернета вещей» (Design and Deployment of an IoT Application-Oriented Testbed) Лаура Белли (Laura Belli), Симоне Чирани (Simone Cirani), Лука Даволи (Luca Davoli), Андреа Горьери (Andrea Gorrieri), Мирко Манчин (Mirko Mancin), Марко Пиконе (Marco Picone) и Джанлуиджи Феррари (Gianluigi Ferrari) представляют методику построения стабильной, открытой, развивающейся инфраструктуры разработки приложений Интернета вещей. Описываемая авторами мультиузловая тестовая платформа реализует функции распознавания сервисов, взаимодействия с людьми, определения местонахождения пользователей и обеспечения безопасности.
В публикации «Использование веб-аналитики для Интернета вещей» (Repurposing Web Analytics to Support the IoT) Матеуш Микуш (Mateusz Mikusz), Сара Клинч (Sarah Clinch), Рэйчел Джонс (Rachel Jones), Майк Хардинг (Mike Harding), Кристофер Винстенли (Christopher Winstanley) и Найджел Дэвис (Nigel Davies) рассказывают об опыте приспособления существующей системы веб-аналитики для выполнения аналогичных задач в Интернете вещей. Веб-аналитика катализирует рост коммерции в Web, а анализ взаимодействий с Интернетом вещей обещает аналогичную перспективу. Авторы описывают облачный сервис «конвертации» событий Интернета вещей в соответствующие показатели для системы веб-аналитики.
Физиологические вычисления
Октябрьский выпуск Computer (IEEE Computer Society, Vol. 48, No. 10) посвящен «физиологическим вычислениям» — системам, способным в реальном времени обрабатывать сигналы, поступающие от организма человека, и динамически реагировать на изменения его психофизиологического состояния. Единение мозга и тела с машиной позволит расширить границы центральной нервной системы, чтобы напрямую общаться с техникой посредством физиологических процессов, лежащих в основе мыслей, эмоций и действий. Физиологические вычисления обещают дальнейшее сближение человека с техникой, а со временем, возможно, даже встраивание компьютеров в системы организма.
В статье «Оценка когнитивной нагрузки путем ЭЭГ, совмещенной с пупиллометрией» (Combining EEG with Pupillometry to Improve Cognitive Workload Detection) Дэвид Розадо (David Rozado) и Андреас Дюнсер (Andreas Dunser) предлагают метод повышения точности мониторинга умственной нагрузки в режиме реального времени путем одновременного снятия электроэнцефалограммы и регистрации степени расширения зрачков.
Публикация «Диагностика стресса с помощью физиологических датчиков» (Stress Detection Using Physiological Sensors), авторами которой являются Риккардо Сиони (Riccardo Sioni) и Лука Читтаро (Luca Chittaro), содержит обзор методов оценки уровня стресса по физиологическим показателям и приводит примеры использования таких методов в системе виртуальной реальности.
В современном мире человек не всегда справляется с обработкой всего многообразия потоков информации, поступающей по различным каналам. В статье «Интерфейс мозг-компьютер для систем анализа уровня внимания» (Designing Brain-Computer Interfaces for Attention-Aware Systems) Эван Пек (Evan Peck), Эмили Карлин (Emily Carlin) и Роберт Джейкоб (Robert Jacob) описывают механизм, который передает уведомления о поступивших сообщениях, выбирая время, когда мозг пользователя сможет их обработать. Уровень концентрации при этом оценивается с помощью метода функциональной инфракрасной спектроскопии ближнего действия.
Александр Тыренко (shoorah@osp.ru) — обозреватель «Computerworld Россия» (Москва).