Если вы уже владеете программированием на языке Haskell, эта книга научит вас использованию множества интерфейсов и библиотек, предназначенных для написания параллельных и конкурентных программ. Вы узнаете, как распараллеливание на многоядерные процессоры позволяет ускорять вычислительно нагруженные программы и как конкурентность облегчает написание программ с активно взаимодействующими между собой и с другими программами потоками.Автор Саймон Марлоу проведёт вас по этому пути, сопровождая его большим количеством примеров, с которыми можно самостоятельно экспериментировать, запуская, изменяя и расширяя. Книга делится на две части, посвященные таким инструментам, как Parallel Haskell и Concurrent Haskell, включённые в неё упражнения позволят вам научиться:- выражать параллелизм в языке Haskell средствами монады Eval и стратегий вычислений;- распараллеливать обычный код на языке Haskell в монаде Par;- организовывать параллельные вычисления с массивами на основе библиотеки Repa;- использовать библиотеку Accelerate для запуска вычислений на графических процессорах;- работать с базовыми интерфейсами для написания конкурентного кода;- реализовывать высокопроизводительные конкурентные сетевые серверы;- писать распределённые программы, запускающиеся на множестве машин сети.
Esli vy uzhe vladeete programmirovaniem na jazyke Haskell, eta kniga nauchit vas ispolzovaniju mnozhestva interfejsov i bibliotek, prednaznachennykh dlja napisanija parallelnykh i konkurentnykh programm. Vy uznaete, kak rasparallelivanie na mnogojadernye protsessory pozvoljaet uskorjat vychislitelno nagruzhennye programmy i kak konkurentnost oblegchaet napisanie programm s aktivno vzaimodejstvujuschimi mezhdu soboj i s drugimi programmami potokami.Avtor Sajmon Marlou provedjot vas po etomu puti, soprovozhdaja ego bolshim kolichestvom primerov, s kotorymi mozhno samostojatelno eksperimentirovat, zapuskaja, izmenjaja i rasshirjaja. Kniga delitsja na dve chasti, posvjaschennye takim instrumentam, kak Parallel Haskell i Concurrent Haskell, vkljuchjonnye v nejo uprazhnenija pozvoljat vam nauchitsja:- vyrazhat parallelizm v jazyke Haskell sredstvami monady Eval i strategij vychislenij;- rasparallelivat obychnyj kod na jazyke Haskell v monade Par;- organizovyvat parallelnye vychislenija s massivami na osnove biblioteki Repa;- ispolzovat biblioteku Accelerate dlja zapuska vychislenij na graficheskikh protsessorakh;- rabotat s bazovymi interfejsami dlja napisanija konkurentnogo koda;- realizovyvat vysokoproizvoditelnye konkurentnye setevye servery;- pisat raspredeljonnye programmy, zapuskajuschiesja na mnozhestve mashin seti.