Коллектив Авторов - Цифровой журнал «Компьютерра» № 22

Здесь есть возможность читать онлайн «Коллектив Авторов - Цифровой журнал «Компьютерра» № 22» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Прочая околокомпьтерная литература, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Цифровой журнал «Компьютерра» № 22: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Цифровой журнал «Компьютерра» № 22»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Оглавление
Большие новости Терралаб Своя игра Интерактив Блоги ReaDitorial Голубятня-Онлайн
Lenovo в Москве: всё руководство в сборе Сотовый телефон заменит билет на метро Уимблдонская дополненная реальность NFC в метрополитене, далее везде Что ждёт Kinect и новый Xbox 360 в России DisTREE ИТ-неделя: два дня и 25 фотографий Nokia и «Билайн» занялись мобильным телевидением Промзона: Многоразовая крышка Skype против «Мультифона»: в чём разница? Panasonic VIERA TX-PR42G20 — телевизор с возможностями компьютера Редактор видео YouTube Промзона: Посудомойка из 2050-го Промзона: Настенная корзина для белья Суперкомпьютер IBM Watson: элементарно, Ватсон Вещь дня: Трекпад-цифровая клавиатура Нетбуки и планшеты – кто победит Промзона: Скакалка-заряжалка Системные платы для платформы Intel Вещь дня: iPhone-джойстик, iPad-"Денди" Промзона: Нано-био-холодильник Софт: онлайновые RSS-ридеры против инфоперегрузки Когда наступит эра сверхчётких дисплеев Василий Щепетнёв: Искушение пустынника Владимира E3 2010: кто победит в войне контроллеров Кафедра Ваннаха: Готовый корм для памяти Кивино гнездо: Люди и насекомые В чём секрет многозадачности iOS4 Василий Щепетнёв: Жизнь и смерть деревянных солдат — III Кивино гнездо: Безмолвный очевидец дана бойд: 4chan и взлом экономики внимания СМИ оказались равнее других Кафедра Ваннаха: Левиафан как форма искусственной жизни Василий Щепетнёв: Полёт гусеницы "Нивал" и 1С о выставке E3 2010 Елена Дорохина о юбилее Price.ru и его новой версии Анатолий Вассерман: Бдительность и репрессии Анатолий Вассерман: Новые интерфейсы Нет ничего проще Голубятня: Коннект-позор Голубятня: Twitter Голубятня: Интерактив №1

Цифровой журнал «Компьютерра» № 22 — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Цифровой журнал «Компьютерра» № 22», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

http://www.youtube.com/watch?v=G_tekFsmOa4

В оформлении блога использованы иллюстрации TALLSTUDIO.ru

К оглавлению

ReaDitorial

Нет ничего проще

Герман Царев

Опубликовано24 июня 2010 года

Орфография и пунктуация автора сохранены. — прим. ред.

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

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

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

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

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

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

И так, знакомьтесь – MapReduce. Эта модель программирования для обработки больших объемов данных. Ее создателем считается небезызвестная компания Google. В своей работе она активно применяет этот механизм, что позволяет говорить о его удобности, быстродействии и практичности.

Рассмотрим обработку данных с применением этой технологии. MapReduce включает в себя 3 этапа. Подготовка данных, определение функции map и определении функции reduce. Рассмотрим каждый их этих этапов.

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

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

Определение функции reduce. Функция reduce служит для сборки обработанных частей данных в единый результат. Программист определяет эту функции исходя из поставленной задачи и требуемого результата.

После этого, для запуска обработки данных необходимо вызвать всего одну функцию (ее название зависит от реализации механизма MapReduce, например в Qt подобная функция имеет название mappedReduced), указав в ее параметрах: подготовленные разбитые на части данные, функцию map и функцию reduce.

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

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать
Отзывы о книге «Цифровой журнал «Компьютерра» № 22»

Обсуждение, отзывы о книге «Цифровой журнал «Компьютерра» № 22» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x