bannerbannerbanner
logo
Войти

Параллельное программирование

Добавлено
Год выхода: 2015
Язык: Русский
Книга посвящена рассмотрению некоторых высокоуровневых моделей параллельного и распределенного прогр…
Книга посвящена рассмотрению некоторых высокоуровневых моделей параллельного и распределенного программирования. В порядке усложнения описываются несколько моделей внутренней организации параллельных программ: ярусно-параллельная форма программы, сети конечных автоматов, сети Петри, модель актеров, а также модель квантовых вычислений. Приводятся примеры программной реализации на C++ с использованием различных средств распараллеливания (OpenMP, MPI, POSIX Threads, Windows API). В каждом случае рассматриваются вопросы контекстнонезависимой реализации конструкций описываемой модели без привязки к конкретным задачам, а также приведены примеры решения с использованием такой реализации конкретных задач. Некоторые из описанных моделей (к примеру, модель актеров), в настоящий момент приобретают все большую популярность вследствие распространения основанных на их использовании языков и библиотек. Книга ориентирована на подготовленного читателя в области программирования. Будет полезна программистам, желающим освоить высокоуровневые подходы к организации параллельных и распределенных программ, студентам старших курсов, аспирантам и преподавателям технических ВУЗов, ведущим курсы параллельного программирования.
Авторами исследуется проблема популяризации основных понятий и определения парадигмы параллельного программирования среди других парадигм программирования. Рассматриваются вопросы о том, что такое парадигмы программирования; как определить «классические» парадигмы (императивная, функциональная и логическая) и парадигмы параллельного программирования; каким образом связаны парадигмы и языки программирования; имеет ли смысл понятие «универсальный язык параллельного программирования»; как знакомить неспециалистов с параллельным программированием.
Добавлено
Год выхода: 2012
Язык: Русский
Эта книга познакомит вас с Erlang, языком программирования, который идеально подходит для создания п…
Эта книга познакомит вас с Erlang, языком программирования, который идеально подходит для создания параллельных отказоустойчивых приложений, предназначенных для работы в режиме реального времени. С появлением многоядерных процессоров, предоставляющих новые средства масштабирования распараллеленных приложений, Erlang становится все более популярным. Независимо от уровня предварительной подготовки, вы сможете научиться написанию сложных параллельных приложений. Книга написана лидерами международного сообщества Erlang. В ней вы найдете подробное описание правильно построенных списков, рекурсии, отладки, сетевого и параллельного программирования, а также многих других аспектов синтаксиса и семантики языка Erlang.
Данная книга представляет собой введение в методы программирования для параллельных ЭВМ. Основной ее целью является научить читателя самостоятельно разрабатывать максимально эффективные программы для таких компьютеров. Вопросы распараллеливания конкретных алгоритмов рассмотрены на многочисленных примерах программ на языке С. В основу книги положен курс лекций для студентов механико-математического факультета МГУ им. М. В. Ломоносова. Для студентов, аспирантов, научных работников, программистов и всех, кто хочет научиться разрабатывать программы для параллельных ЭВМ.
Статья посвящена использованию новых технологий параллелизма, которые появились в современных стандартах Фортрана (Fortran-2003, Fortran-2008). Авторами описаны конвейерные операции и подпрограммы; рассмотрены новые технологии параллелизма: комассивы и автораспараллеливание; представлены результаты тестирования различных технологий параллелизма; проанализированы особенности использования различных компиляторов Фортрана.
CUDA – вычислительная архитектура, разработанная компанией NVIDIA и предназначенная для разработки параллельных программ. В сочетании с развитой программной платформой архитектура CUDA позволяет программисту задействовать невероятную мощь графических процессоров для создания высокопроизводительных приложений, включая научные, инженерные и финансовые приложения. Книга написана двумя старшими членами команды по разработке программной платформы CUDA. Новая технология представлена в ней с точки зрения программиста. Авторы рассматривают все аспекты разработки на CUDA, иллюстрируя изложение работающими примерами. После краткого введения в саму платформу и архитектуру CUDA, а также беглого обзора языка CUDA C, начинается подробное обсуждение различных функциональных возможностей CUDA и связанных с ними компромиссов. Вы узнаете, когда следует использовать то или иное средство и как писать программы, демонстрирующие поистине выдающуюся производительность. Издание предназначено для программистов, а также будет полезно инженерам, научным работникам и студентам вузов.
Если вы уже владеете программированием на языке Haskell, эта книга научит вас использованию множества интерфейсов и библиотек, предназначенных для написания параллельных и конкурентных программ. Вы узнаете, как распараллеливание на многоядерные процессоры позволяет ускорять вычислительно нагруженные программы и как конкурентность облегчает написание программ с активно взаимодействующими между собой и с другими программами потоками. Автор Саймон Марлоу проведёт вас по этому пути, сопровождая его большим количеством примеров, с которыми можно самостоятельно экспериментировать, запуская, изменяя и расширяя. Книга делится на две части, посвящённые таким инструментам, как Parallel Haskell и Concurrent Haskell, включённые в неё упражнения позволят вам научиться:выражать параллелизм в языке Haskell средствами монады Eval и стратегий вычислений;распараллеливать обычный код на языке Haskell в монаде Par;организовывать параллельные вычисления с массивами на основе библиотеки Repa;использовать библиотеку Accelerate для запуска вычислений на графических процессорах;работать с базовыми интерфейсами для написания конкурентного кода;реализовывать высокопроизводительные конкурентные сетевые серверы;писать распределённые программы, запускающиеся на множестве машин сети.
В современных вычислениях программы нередко объединяют несколько процессов. Основная проблема, возникающая при создании таких распределенных программ, состоит в том, чтобы заставить все процессы вместе работать над решением общей задачи, даже в случае отказов некоторых из них. Данная книга содержит введение в абстракции распределенного программирования и знакомит с фундаментальными алгоритмами и их реализациями в нескольких распределенных окружениях. Перед читателем будут раскрыты важные проблемы распределенных вычислений и основные алгоритмические приемы их решения. На подробных примерах читатель сможет понять, как с помощью этих приемов конструировать распределенные приложения. Обсуждение каждой темы завершается множеством упражнений и их решений. Издание предназначено для студентов высших учебных заведений, аспирантов, а также программистов, занимающихся разработкой высоконадежных распределенных приложений.
Усеянная беспечными иллюстрациями и смесью развлекательных и практических примеров программ, книга «Изучай Erlang во имя добра!» является отличным пунктом отправления в иногда безумный, но всегда восхитительный мир Erlang. Вероятно, вас привело к Erlang обещание конкурентности или параллелизма. Возможно, это аспект языка, касающийся распределённых вычислений, а может быть, необычный подход к устойчивости против сбоев. Одним из величайших препятствий на пути изучения Erlang является не столько то, что идеям его свойственна сложность, но и то, что они сильно отличаются от идей большинства других языков, которые вам встречались. Переменные в Erlang не переменны. Вам не следует программировать в ожидании ошибки. Процессы действительно очень дёшевы, и вы можете иметь тысячи их одновременно, даже миллионы, если вам так захочется. Ох, и потом этот странный синтаксис. Erlang совершенно не похож на Java; нет ни методов, ни классов, ни объектов. И, обождите… знак равенства вовсе не означает «равно»… Издание предназначено как для начинающих изучать Erlang, так и для более опытных разработчиков. Даже в том случае, если читатель очень хорошо знаком с Erlang, книга сможет стать справочником и даже научить чему-то новому.
Объем обрабатываемых данных во всех областях человеческой деятельности продолжает расти быстрыми темпами. Существуют ли эффективные приемы работы с ним? В этой книге рассказывается об Apache Spark, открытой системе кластерных вычислений, которая позволяет быстро создавать высокопроизводительные программы анализа данных. C помощью Spark вы сможете манипулировать огромными объемами данных посредством простого API на Python, Java и Scala. Написанная разработчиками Spark, эта книга поможет исследователям данных и программистам быстро включиться в работу. Она рассказывает, как организовать параллельное выполнение заданий всего несколькими строчками кода, и охватывает примеры от простых пакетных приложений до программ, осуществляющих обработку потоковых данных и использующих алгоритмы машинного обучения.
Рассмотрены архитектуры параллельных вычислительных систем, общие вопросы их применения и проблемы программирования, особенности организации вычислительных процессов и инструментальные средства разработки прикладного параллельного программного обеспечения для мультипроцессорных и мультикомпьютерных параллельных вычислительных систем. Пособие также включает курс практических работ, позволяющих освоить средства параллельного программирования. Предназначено для бакалавров по направлению подготовки 09.03.01 «Информатика и вычислительная техника» при изучении дисциплины «Параллельные вычислительные системы». Может использоваться в качестве основной и дополнительной литературы при изучении дисциплин «Параллельное программирование», «Современные вычислительные системы» и пр.
Если вы побаиваетесь конкурентного и многопоточного программирования, эта книга написана для вас. Стивен Клири предоставляет в ваше распоряжение 85 рецептов работы с .NET и C# 8.0, необходимых для параллельной обработки и асинхронного программирования. Конкурентность уже стала общепринятым методом разработки хорошо масштабируемых приложений, но параллельное программирование остается непростой задачей. Подробные примеры и комментарии к коду позволят разобраться в том, как современные инструменты повышают уровень абстракции и упрощают конкурентное программирование. Вы научитесь использовать async и await для асинхронных операций, расширять возможности кода за счет использования асинхронных потоков, исследовать потенциал параллельного программирования с библиотекой TPL Dataflow, создавать конвейеры потоков данных с библиотекой TPL Dataflow, задействовать функциональность System.Reactive на базе LINQ, использовать потоково-безопасные и неизменяемые коллекции, проводить модульное тестирование конкурентного кода, брать под контроль пул потоков, реализовывать корректную кооперативную отмену, анализировать сценарии на предмет объединения конкурентных методов, пользоваться всеми возможностями асинхронно-совместимого объектно-ориентированного программирования, распознавать и создавать адаптеры для кода, в котором используются старые стили асинхронного программирования.
Узнайте, как реализовать потоковую обработку на платформе Kafka! В этой книге рассмотрены реальные примеры сбора, преобразования и агрегации данных. Показана работа со множественными процессорами, обработка событий в режиме реального времени. Вы узнаете даже о потоковом SQL с KSQL! Эксплуатация и тестирование, мониторинг и отладка современных распределенных систем – вы получите всю необходимую информацию о самых сложных аспектах потоковой обработки. Kafka Streams API – ключ к эффективному применению Kafka на практике. После покупки предоставляется дополнительная возможность скачать книгу в формате epub.
GraphQL – это язык запросов, альтернативный REST и ситуативным архитектурам веб-сервисов, самая революционная технология извлечения данных со времен Ajax. Точно как React изменил взгляд веб-разработчика на создание пользовательских интерфейсов, GraphQL полностью изменит практику передачи данных по HTTP. Это практическое руководство поможет вам приступить к работе с языком GraphQL. После покупки предоставляется дополнительная возможность скачать книгу в формате epub.
Обработка текстов на естественном языке (Natural Language Processing, NLP) – крайне важная задача в области искусственного интеллекта. Успешная реализация делает возможными такие продукты, как Alexa от Amazon и Google Translate. Эта книга поможет вам изучить PyTorch – библиотеку глубокого обучения для языка Python – один из ведущих инструментов для дата-сайентистов и разработчиков ПО, занимающихся NLP. Делип Рао и Брайан Макмахан введут вас в курс дел с NLP и алгоритмами глубокого обучения. И покажут, как PyTorch позволяет реализовать приложения, использующие анализ текста. После покупки предоставляется дополнительная возможность скачать книгу в формате epub.
Как решить проблемы front-end-разработчиков и сделать их жизнь более счастливой? Нужно всего лишь познакомиться с возможностями React! Только так вы сможете быстро выйти на новый уровень и получить не только моральное, но и материальное удовлетворение от веб-разработки. Успешные пользовательские интерфейсы должны быть визуально интересными, быстрыми и гибкими. React ускоряет тяжелые веб-приложения, улучшая поток данных между компонентами UI. Сайты начинают эффективно и плавно обновлять визуальные элементы, сводя к минимуму время на перезагрузку страниц. Перед вами труд, над которым на протяжении полутора лет работали более дюжины человек. Тщательно отобранные примеры и подробные комментарии позволяют разработчикам перейти на React быстро, чтобы затем эффективно создавать веб-приложения, используя всю мощь JavaScript. После покупки предоставляется дополнительная возможность скачать книгу в формате epub.
R является самым популярным в мире языком статистических вычислений: археологи используют его, изучая древние цивилизации, фармацевтические компании выясняют, какие лекарства наиболее безопасны и эффективны, а финансисты задействуют его для оценки рисков и удержания позиций на рынке. «Искусство программирования на R» – это путешествие, в которое вы отправляетесь с опытным гидом, готовым поделиться всей информацией о разработке ПО: от типов и структур данных до таких продвинутых тем, как замыкания, рекурсия и анонимные функции. Вам не понадобятся специальные знания в области статистики, а программистский опыт может варьироваться от начинающего до профессионала. Вы познакомитесь с функциональным и объектно-ориентированным программированием, математическим моделированием и преобразованием сложных данных в простые и удобные форматы. Проектируете ли вы самолет, прогнозируете ли вы… погоду, или просто хотите «приручить» свои данные, «Искусство программирования на R» станет руководством по использованию всей мощи статистических вычислений. После покупки предоставляется дополнительная возможность скачать книгу в формате epub.
Рикардо Террелл научит вас писать идеальный код, с которым любые приложения будут просто летать. Книга содержит примеры на языках C# и F#, описывает паттерны проектирования конкурентных и параллельных программ как в теории, так и на практике. Вы начнете с теоретических основ параллелизма, после чего перейдете к примерам и проверенным решениям, помогающим создавать и оптимизировать код для современных многопроцессорных систем. В этой книге автор раскрыл важнейшие конкурентные абстракции, реализацию потоковой обработки событий в реальном времени и наилучшие конкурентные паттерны и практики, применимые на любых платформах. После покупки предоставляется дополнительная возможность скачать книгу в формате epub.
Язык С++ выбирают, когда надо создать по-настоящему молниеносные приложения. А качественная конкурентная обработка сделает их еще быстрее. Новые возможности С++17 позволяют использовать всю мощь многопоточного программирования, чтобы с легкостью решать задачи графической обработки, машинного обучения и др. Энтони Уильямс, эксперт конкурентной обработки, рассматривает примеры и описывает практические задачи, а также делится секретами, которые пригодятся всем, в том числе и самым опытным разработчикам. Теперь вам доступны все аспекты конкурентной обработки на C++17 – от создания новых потоков до проектирования полнофункциональных многопоточных алгоритмов и структур данных. После покупки предоставляется дополнительная возможность скачать книгу в формате epub.
Хотите выжать из вашего кода на .NET максимум производительности? Эта книга развеивает мифы о CLR, рассказывает, как писать код, который будет просто летать. Воспользуйтесь ценнейшим опытом специалиста, участвовавшего в разработке одной из крупнейших .NET-систем в мире. В этом издании перечислены все достижения и улучшения, внесенные в .NET за последние несколько лет, в нем также значительно расширен охват инструментов, содержатся дополнительные темы и руководства. После покупки предоставляется дополнительная возможность скачать книгу в формате epub.
Популярные книги