Pull to refresh

Comments 37

Звучит отлично! Каким образом можно оплатить часть проделанной работы?
Если честно, я не совсем понял что вы имеете ввиду: что оплатить, зачем оплатить, кому оплатить? :)
Я был бы не против оплатить стоимость эквивалентную бумажной книге (500-3000 руб), но не вижу ни «купить», ни «donate»
Ах вот вы о чем! Спасибо! Для меня это высокая оценка. Значит, правильное дело делаем, товарищи :) Значит, материал полезен. Честно говоря я не был готов к такому повороту ни технически, ни психологически. Но раз уж в статье я написал «книга распространяется бесплатно и доступна в электронном виде», значит так тому и быть. Еще раз, спасибо!
… да, смею предположить, что с текстом книги вы еще не успели ознакомиться :) Буду признателен, если после её прочтения вы найдете время вернуться сюда и черкнуть свои комментарии.
да, я успел ознакомиться только с оглавлением и выборочно с содержимым. по крайней мере точно посоветую людям, кому это необходимо :)
сам постараюсь прочесть на выходных (если они будут)
Буду рад, если книга пригодится также вашим коллегам!
Я веду практику по распределенным вычислениям у третьего и шестого курсов кафедры ВТ ИТМО. При подготовке к занятиям я пользовался этим пособием, когда оно еще не было опубликовано, и поэтому очень хорошо знаком с текстом. Очень рекомендую к прочтению всем, кто увлекается компьютерными науками: интересный и полезный материал изложен очень живо и просто, одно удовольствие читать.
Женя, спасибо! Рад, что пособие оказалось полезным для тебя!
Уважаемый Михаил Сергеевич, после беглого ознакомления с выложенным вам текстом, я был немало удивлен обнаружив, что значительная часть из наугад просмотренного мной представляет собой практически подстрочный первод достаточно известной книги Ajay D. Kshemkalyani, Mukesh Singhal, Distributed Computing, Principles, Algorithms, указанной под номером 4 в вашем списке дополнительной литературы. Достаточно сравнить описания конусов событий и предшествующий материал. Замечательным образом, даже названия подразделов и их порядок часто совпадают.
Никита, спасибо за комментарий! Из него следует, что вы стали изучать материал книги :) Это приятно!

Вы правы, что описание конуса прошлого и конуса будущего взято из книги Kshemkalyani A. D., Singhal M. Distributed Computing: Principles, Algorithms, and Systems, указанной под номером «четыре» в списке основной используемой литературы (собственно, эта книга и присутствует в списке литературы в том числе поэтому :) и, кстати, я рекомендую её к изучению) Однако не соглашусь с тем, что, как вы пишите, значительная часть материала взята оттуда. Скажу больше, материал книги построен на всех 30 источниках, указанных в этом списке. Это я могу гарантировать: соответствующая бумажная стопочка до сих пор лежит у меня на столе :) – на самом деле при написании текста было переработано больше, чем эти 30 источников, просто эти 30 мне показались наиболее удачными.

Позволю процитировать себя из Введения:
Представленный в пособии список литературы содержит перечень источников, которые автор рекомендует в первую очередь для получения более подробной информации по рассматриваемым и дополнительным вопросам из области распределенных вычислений [1-7] и материал из которых в той или иной степени был использован при написании данного пособия [1-30].

Надеюсь, вы измените своё мнение после более детального ознакомления с материалом!
Возможно я недостаточно ясно выразился. Речь не идет о «использовании материалов». Речь идет о том, что значительная доля текста книги за вашим авторством является неатрибутированным дословным переводом других источников (а владельцы авторских прав на цитируемые источники, как вы понимаете, должны в таком случае получать royalties). Мне не кажется, что это существенно отличается от известным примеров диссертаций составленных из… других диссертаций.
Мне сложно что-либо добавить к моему предыдущему ответу. А почему вас эта тема так сильно беспокоит?
… это же учебное пособие, а не диссертация, не монография и не печатная книга.
И в чем же разница? Понятие авторства, мне кажется, распространяется на все эти типы текстов. Вопрос о причине моего беспокойства сам вызывает у меня удивление. Неужели преподавателю университета нужно объяснять, что нельзя использовать чей-то текст страницами, без указания на заимствование, подписывать результат своим именем и даже объявлять на него авторские права?

Кстати, просматривая ваш текст далее, я нахожу все больше и больше скопированного текста, причем иногда ситуация доходит до курьеза. Так на странице 88 вы копируете исходный код алгоритма со страницы 64 вышеуказанной книги и по ошибке часть функции DependencyTrack() попадает в тело функции VisitEvent(), от чего код становится бесмысленным. Нетрудно заметить, что последующее обсуждение алгоритма также скопировано из книги без всяких изменений, включая те же значения тестовых параметров. Последующее описание метода Jard–Jourdan также скопировано практически дословно и т.д. Имеется ли вообще в главах 2 и 3 ваш авторский текст и сколько его?
Над кодом функции DependencyTrack() я помню я думал, изменения внесены намеренно, опираясь на статью-первоисточник. Посмотрите пж-та на описание алгоритма и код, его иллюстрирующий, внимательнее, там не должно быть ошибки. Можете сравнить с первоисточником Fowler J., Zwaenepoel W. Causal distributed breakpoints // Proceedings of the 10th International Conference on Distributed Computing Systems, 1990. P.134–141.

В главе 2 я использовал упомянутую вами книгу только для написания пункта 2.4. «Конус прошлого и конус будущего для события». Все остальное — из других источников.

В главе 3, например, вы найдете примеры использования логических часов, которые отсутсвуют в упомянутой вами книге. При внимательном изучении вы сможете найти еще другие 10 отличий :) При описании метода Jard–Jourdan я опирался на материал упомянутой вами книги и статью-первоисточник Jard C., Jourdan G.-C. Dependency tracking and filtering in distributed computations // Brief Announcements of the ACM Symposium on PODC, 1994. A full presentation appeared as IRISA Technical Report No. 851, 1994. потому как, помню, «чистое» описание этого метода из книги мне не понравилось, и я из него толком ничего не понял. Поэтому пришлось его переработать с учетом статьи, авторами которой и являются Jard и Jourdan :) Надеюсь, в пособие этот метод изложен яснее, чем в книге, на которую вы постоянно ссылаетесь.
изменения внесены намеренно

Намеренных изменений там быть не может, так как пошаговое описание работы алгоритма дословно скопировано из Kshemkalyani A. D., Singhal M., op. cit., (в дальнейшем KS).

В главе 2 я использовал упомянутую вами книгу только для написания пункта 2.4.

Вот «источники» нескольких разделов вашей книги:
1.5.4. Примитивы взаимодействия — KS, 1.6.1 Blocking/non-blocking, synchronous/asynchronous primitives
2.2 Причинно-следственный порядок событий, стр. 52 и далее — KS, Causal precedence relation и часть предыдущего текста со стр. 40.
2.3 Эквивалентные выполнения — G. Tel, 2.3.3 Equivalence of Executions: Computations.
2.4 Конус прошлого и будущего для события — KS, 2.6 Past and future cones of an event
2.5 Свойства каналов — G. Tel, 2.4.2. Properties of the Channels.
3.1. Общие принципы построения логических часов — KS, 3.2 A framework for a system of logical clocks
3.2. Скалярное время Лампорта — KS, 3.3 Scalar time
3.3. Векторное время — KS, 3.4 Vector time

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

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

Никита, спасибо комментарий. Я прям перечитал книгу, поскольку писал ее какое-то время назад. :) Отчасти Вы правы, отчасти не совсем, но суть не в этом. Конечно, в учебном пособии есть цитирование текста из книг. Это как раз-таки не противоречит требованиям к учебным пособиям.

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

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

Если же где-то обнаружите фактические неточности — мало ли что неверно, или в пособии нет частей, которые там обязательно должны быть, по вашему мнению — буду благодарен за обратную связь.
Мне кажется вы сами понимаете в чем проблема, именно поэтому вы не ответили на вопрос какие части текста написаны вами самостоятельно. Но на всякий случай поясню: то, что вы перевели с английского главы книг по распределенным вычислениям это хорошо. Если бы вы издали сборник таких переводов, это было бы замечательно. Вы, однако, издали их под своим именем. Это называется плагиат и это очень плохо. Когда подобное становится известным, академическая карьера обычно заканчивается.
Материал конечно интересный сам по себе… Но после беглого просмотра он мне показался даже более далёким от практики, чем упомянутое знание нюансов C++. К примеру не увидел (проверял поиском) даже строчки про MPI, что кажется странным при подобном заголовке.
Да, вы правы, аббревиатуры MPI в тексте нет :) Наверное самое близкое к MPI, что есть в книге, представлено в разделах 1.5.4 «Примитивы взаимодействия» и 1.5.5 «Синхронный и асинхронный обмен сообщениями» Там предпринята попытка описать какие примитивы взаимодействия существуют и почему они такие.
Хм… «конус прошлого», «конус будущего», «логическое время». Очень похожие термины часто употребляются в научно-популярных изложениях СТО (Специальной теории относительности). С иллюстрациями, где два конуса (один расходится вверх, другой вниз) соприкасаются вершинами, и внутри конуса, уходящего вниз, написано «absolute past», внутри уходящего вверх написано «absolute future», а пространство вне конусов подписано «absolute elsewhere».
Так и есть. Эта терминология заимствована из теории относительности, хотя аналогия и не очень глубокая.
--аббревиатуры MPI в тексте нет

я так полагаю что книгу можно и не читать. Ибо в с++ есть три гитик:

GPU / MPI / и трюки в C++
Я бы сказал немного по другому.

Есть 3 уровня распараллеливания:
1. На уровне инструкций — SIMD (sse, avx и т.п.)
2. На уровне ядер — OpenMP и ещё куча вариантов типа TBB или даже просто std::thread.
3. На уровне процессов (узлов) — MPI в первую очередь.

А GPU — это у нас просто особый вырожденный случай пункта 2, использующий специфическое железо…

Ну и да, не зная хорошо C++ можно написать тормозное приложение даже с использованием всего вышеперечисленного. )))
я переиначу свой ответ.

1. Распараллеливание используя архитектуру компьютера
2. Распараллеливание используя допольнительные вычислительные устройства ака GPU
4. Распараллеливание используя сеть компьютеров, включающих 1,2
Большое спасибо, очень интересно!

Но что насчет epub-издания? Хотелось бы почитать в дороге (уезжаю в командировку) на телефоне, а PDF на 4 дюймах плохо воспринимается.
На здоровье! :) К сожалению, на данный момент материал доступен только в PDF. Надо было указать об этом в тексте поста. Побегу исправлять.
… поскольку пишу на Хабре впервые, я не знаю, можно ли исправлять / дополнять текст поста после его публикации и жать кнопку «Опубликовать» повторно. К чему это приведет? Подскажите, пожалуйста.
Да, epub-версия нужна, я бы тоже с ней ознакомился.
Да, но как, как мне сделать epub-версию? Я вообще не специалист в издательском деле :) и epub ни разу руках не держал. Может кто-то сразу подскажет как это можно сделать? Или я возьму некоторый таймаут, чтобы попытаться самому разобраться…
Между тем мне на электроную почту приходят отзывы с найденными неточностями и опечатками. К примеру, цитата:
Хочу сказать спасибо в целом за книгу и особенное спасибо за возможность скачать pdf.

Заметил неточность на странице 36. При описании рисунка 1.7 в тексте говорится о процессах А и В, а на самом рисунке они помечены как P1 и P2.

Очень благодарен за подобные письма! Пособие не проходит рецензирование и вычитку текста редактором (да и вообще кем бы то ни было), поэтому в нем безусловно есть ошибки с которыми безусловно надо бороться :) Буду признателен за все найденные ошибки и опечатки.
Может тогда текст выложите на гитхаб?
Никогда не сталкивался с гитхабом. Будем посмотреть.
/me вспомнил, что хотел ещё раз полистать Тэля, но уже более вдумчиво…
На мой взгляд очень, очень достойная монография, если не пугаться слов «конфигурация» и «система переходов» :)
Давно интересуюсь распределенными системами и рад, что наткнулся на описание книги. Отталкивает немного пролог с демонстрацией академического мировоззрения и мнением, что в вузах учат думать, но все-таки эта работа задевает настолько важную и перспективную тему, что я обязательно поинтересуюсь у знакомых реальных разработчиков распределенных систем, стоит ли вникать. Очень надеюсь, что работа окажется полезной для меня и будет повод сделать пожертвование.
Sign up to leave a comment.

Articles