При разработке контрольной панели управляющей крупной сетевой инфраструктурой и автоматизирующей такие рутинные сценарии, как: создание организационных единиц в Active Directory или подготовка почтовых ящиков пользователям, приходится сталкиваться с множеством оптимизационных задач. В новом цикле, открываемом этой заметкой, я расскажу об одном решении, применяемом нами в Parallels Automation, позволяющем справиться сразу с несколькими проблемами подобного рода.
вторник, 3 июля 2012 г.
среда, 18 апреля 2012 г.
Асинхронно в WinAPI. Продолжение
Нет ничего сложного в том, чтобы отправить потоку асинхронное сообщение длинной в пару байт. Гораздо интереснее проделать этот же трюк с неограниченным объёмом информации. Итак, цели прежние: организовать асинхронное взаимодействие между потоками с минимальным количеством блокировок. Лишь немного изменились условия: теперь сообщение – это строка произвольной длинны.
понедельник, 19 марта 2012 г.
Асинхронно в WinAPI. Начало
Различные средства параллельного программирования от библиотек вроде Concurrency Runtime до специализированных языков вроде Erlang предоставляют такую типовую операцию, как отправка асинхронного сообщения потоку. А каким образом можно реализовать эту возможность, опираясь только функционал WinAPI. Попробуем разобраться.
среда, 18 января 2012 г.
MapReduce и Erlang – лучше когда вместе
Пришла пора добавить немного кода к рассказанной в прошлый раз теории. Вот только идея написать MapReduce на C++ или C# мне показалась слишком банальной и тривиальной. Захотелось немного экзотики. Если уж реализовывать "супер распределённый" алгоритм, то только на языке, который считается одним из наиболее приспособленных к параллельным вычислениям. Я говорю об Erlang`е.
понедельник, 12 декабря 2011 г.
Кратко о MapReduce
Среди всех параллельных алгоритмов, реализации которых легко масштабируются на произвольное количество ядер, MapReduce можно назвать одним из самым свежих. Компания Google представила его в 2004 году. Давайте попробуем разобраться: что это такое и зачем оно нужно.
понедельник, 14 ноября 2011 г.
Параллельный зоопарк
Рассказывая про методы многопоточного программирования в предыдущих заметках, я регулярно обращался за помощью к библиотеке Concurrency Runtime. Эта прекрасная библиотека имеет 2 недостатка: во-первых, она доступна только в составе Microsoft Visual Studio 2010 и выше; во-вторых, она работает только в ОС Windows начиная с версии XP с 3-им сервис-паком. В данной заметке я хочу рассмотреть некоторые альтернативные библиотеки, для многопоточного программирования, лишённые таких ограничений.
понедельник, 24 октября 2011 г.
Data Flow, или Данные управляют командами. Практика
В прошлый раз я рассказывал о Data Flow подходе в разработке многозадачных приложений. Та заметка получилась совершенно без кода и примеров. В этот раз постараюсь исправиться – кода будет много. И весь код будет посвящён иллюстрации всё той же темы: Data Flow или конвейер данных.
Подписаться на:
Сообщения (Atom)