обработают все входные данные и соберут единый результат. В итоге – минимум затрат от программиста и максимальная производительность. Как показывает практика, приложения, написанные с применением MapReduce, оказываются минимум в 2 раза быстрее, чем приложения, использующие обычный механизм запуска потоков.
Данная технология реализована для различных языков программирования, например, для С++, С#, Java и других.
Удобной, простой в использовании с одной стороны, и показывающие прекрасные результаты быстродействия с другой, является реализация механизма MapReduce в объектно-ориентированной кроссплатформенной библиотеке Qt.
Рассмотрим простой пример. Пусть имеется вектор чисел, имеющий очень большую длину. Необходимо посчитать количество вхождений какого-либо числа в этом векторе.
Однопоточное приложение будет в цикле по-очереди перебирать все значения вектора, сравнивать их с заданным значением и в случае совпадения, увеличивать счетчик вхождений на единицу.
В случае применения MapReduce, программист должен разбить исходный вектор на несколько векторов. Функция map в таком случае будет действовать по алгоритму однопоточной версии, параметром будет являться вектор чисел, возвращаемым значением будет количество вхождений заданного числа. Функция reduce будет проводить операцию сложения результатов после каждого выполнения функции map.
В итоге, после запуска обработки будут автоматически созданы несколько потоков в зависимости от числа обрабатывающих устройств и количества входных данных. Каждый поток будет обрабатывать свою часть входного вектора и считать количество вхождений в нем. После завершения всех потоков будет доступен конечный результат.
В заключении хотелось бы сказать, что применять MapReduce необходимо обоснованно, обдуманно, иначе выигрыш времени, получаемый при распараллеливании, может быть меньше, чем время на создание новых потоков. Но надеюсь, что после освоения этого механизма каждый, кто будет слышать про обработку больших объемов данных, будет думать – да нет же ничего проще =)
Вещь дня: iPhone-джойстик, iPad-"Денди"
Автор: Михаил Карпов
Наверное, почти каждый знает про старинную игровую приставку Nintendo Entertainment System (NES). По крайней мере, в России сложно найти человека, помнящего девяностые, но никогда не слышавшего про 'Денди' - местный клон NES. Её упоминание обязано вызывать ностальгический вздох: да, были времена. А тот самый Марио! Пусть у него огромные пиксели, но он такой родной.
Никто, конечно, не мешает поиграть в игры детства на обычном компьютере или взломанном iPhone. Ну а если есть iPad... Впрочем, по порядку. У iPhone нет физических органов управления - только сенсорный экран. Айфонные эмуляторы NES заменяют необходимый для игры на этой системе джойстик его экранным подобием. Это не очень-то удобно - начать хотя бы с того, что пальцы игрока в этом случае закрывают половину и без того не очень большого экрана.
С iPad получше, но всё равно неудобно. И вот решение найдено: эмулятор NES для взломанного iPad позволяет использовать в качестве контроллера (опять же, взломанный) iPhone или iPod Touch. Теперь остаётся найти старую школьную подставку для книг, поставить на неё новый планшет и - вперёд, мстить злодейским черепахам.
NFC в метрополитене, далее везде
Автор: Юрий Ильин
К концу года МТС обещает превратить мобильные телефоны в электронные билеты, по которым будут пускать в московское метро; плата за проезд будет сниматься прямо с телефонного счёта (вот подробности). И это только начало: технологию NFC, на которой основан совместный проект МТС и Московского метрополитена, уже испытывают другие операторы и производители мобильных телефонов.
В аббревиатуре NFC зашифровано словосочетание Near Field Communication. Им обозначают технологию беспроводной высокочастотной радиосвязи ближнего радиуса действия. 'На практике устройства, использующие технологию NFC, контактируют друг с другом на расстоянии нескольких сантиметров, почти соприкасаясь', - объясняет Виктория Еремина, директор по коммуникациям Nokia в регионе Евразия. Nokia относится к числу компаний, которые наиболее интенсивно продвигают NFC на мировом рынке.
NFC упрощает совместимость мобильных устройств с дополнительными устройствами, например, гарнитурами или колонками, облегчает обмен контентом между устройствами и получение и оплату различных сервисов и услуг. В отличие от Bluetooth - ещё одной технологии ближней связи, - по NFC устройства соединяются, не спрашивая разрешения у владельца (желающих вручную 'спаривать' телефон с каждым турникетом нет).
'Стандартная модель применения технологии NFC предполагает использование трех элементов: специальных SIM-карт, NFC-телефонов, а также NFC-терминалов, которыми оборудуются точки сервиса', - рассказывают пресс-секретарь 'ВымпелКома' Анна Айбашева. На SIM-карты загружается приложение, которое посредством NFC позволяет передавать транзакции на терминал в точке сервиса. Главное преимущество, как говорит Айбашева - 'эффект мгновенной оплаты'.
По словам Виктории Ереминой, система прохода в метро использует стандарт Philips MIFARE. В телефон должна быть встроена NFC- антенна и специальный чип, который хранит ключи идентификации, или NFC-метку, на которую считывающее устройство реагирует определённым образом. Метки бывают активными (то есть излучающими) и пассивными (их можно только считывать). Таким образом, специальный телефон с поддержкой NFC с точки зрения турникета в метро ничем не отличается от обычного билета.
В компании 'Смарт Технологии', которая занимается оснащением турникетов Московского метрополитена датчиками для бесконтактных карт, предпочли не отвечать на вопрос, имеют ли они непосредственное отношение к проекту, связанному с NFC, прямо, однако сообщили, что оборудование турникетов готово принимать любые бесконтактные билеты, работающие по стандарту ISO/IEC 14443 (NFC, как уже сказано, является его расширением). Впрочем, на сайте 'Смарт Технологий' есть раздел 'Оплата проезда мобильным телефоном', в котором предлагается услуга по записи в память телефона виртуального билета на метро.
Пилотный проект по внедрению NFC в Московском метрополитене вела Nokia. В его рамках испытали несколько решений: 'зарядку' телефона на строго определенное число поездок или же неограниченное 'кредитное' использование, когда по итогам месяца со счёта списываются все совершенные поездки с учётом скидок на количество поездок. 'В данный момент технический пилот проекта завершен, - говорит Еремина. - Вся техническая часть проекта полностью отработана и инфраструктура Метрополитена совместима с данным решением NFC. Дальнейшие планы проекта мы не можем прокомментировать, так как Nokia - лишь технический партнёр.'
В Nokia утверждают, что компания поддерживает все пилотные проекты по использованию NFC - их сейчас несколько в различных отраслях. О каких именно проектах идёт речь, Виктория Еремина не сообщила, однако точно известно, что МТС - не единственная компания, которая готовится внедрять NFC. Анна Айбашева из 'ВымпелКома' (торговая марка 'Билайн') рассказала 'Компьютерре', что ещё в прошлом году операторы 'большой тройки' при участии Инфокоммуникационного союза договорились о развитии технологии NFC в России. 'Развитие должно включать развертывание тестовых зон и коммерческих пилотов, - пояснила она. - На данный момент мы прорабатываем несколько вариантов подобных совместных проектов