Комплексный ответ

Alexander Galkin
Всего баллов:
425
Статусных баллов:
375
зеленый пояс
20.07.2009 16:43
Рейтинг
 
#8 Ответ на #1
Цитирую -alaudo
...

К сожалению, в моем предыдущем ответе потерялось всё форматирование текста, что было мною сделано для более приятного чтения. Я новичёк на форуме и не смог найти возможность отредактировать предыдущую запись, поэтому я помещаю здесь вторую, обновленную версию моего рассказала "Шерлок Холмс и ПП". Прошу модераторов, по возможности, удалить (или сократить) первую запись.
Итак, здесь в одном посте собрана вся история "Шерлок Холмс и паралелльное программирование". Отдельными кусочками я размещу историю и в других подфорумах. Замечу, что в полной версии истории мне пришлось написать ряд переходов, чтобы вся история читалась гармонично. Увы, получилось не совсем так компактно, как мне хотелось, зато чуть более шире, чем предусматривал конкурс (полным объяснением таксономии Флинна и намеком на законы Амдала)
-----

"... таким образом, дело остаётся лишь за малым -- найти этого Джефферсона Хоупа, кэбмена, недавно устроившегося на работу и страдающего от частых носовых кровотечений!", - не без нотки торжественности завершил Холмс свой монолог, после чего приподнялся в кресле и снял с каминной полки небольшую лакированную коробочку, в которой он хранил табак для трубки.
"Да уж, уважаемый Холмс, я понимаю, что после всей вашей логической цепочки поиск этого него... нехорошего человека, действительно, всего лишь банальность; но скажите, как Вы собираетесь найти человека по тому небольшому количеству примет, что нам известны, среди шести миллионов жителей Лондона, не считая туристов?", - Ватсон выжидательно посмотрел на Холмса.
Холмс тем временем уже почистил трубку и, набив её крепким иранским табаком, развернул своё кресло к окну. "Элементарно, мой дорогой Ватсон, мы воспользуемся тем подходом, который Вы в Ваших научных заметках назвали бы параллельным программированием. Вот, взгляните в окно!"
Ватсон решительно подошел к окну, и, не отодвигая шторы, стал изучать через неё Бейкер-стрит. На улице и вправду было более оживленно, чем можно было бы ожидать в полдень, вплоть до того, что три кеба, пытающие разъехаться друг другом одновременно, привели к временному затору в движении. За этим затором, со стороны площади Айвор царило оживление: толпа уличных мальчишек бегала от кеба к кебу и, очевидно, о чём-то интересовалась у каждого из них, после чего так же бойкой стайкой перебегала к следующему. Ватсон невольно вытянул голову и прижался головой к шторе, и, заметив движение прямо внизу под окном, тут же отстранился: однако это был всего лишь беспризорный мальчишка, который переминался с ноги на ногу и каждые десять - пятнадцать секунд посматривал на их окно. "А, вот он, Дженни, наш активно ожидающий поток", - сказал Холмс, который тем временем тоже подошел вплотную к окну и резким движением отодвинул штору. Дженни, тут же вскинув голову, и, очевидно, узнав Холмса, резким и несколько грубым движением ноги толкнул задремавших в тени двух своих товарищей. "А вот и наши спящие потоки", -- прокомментировал Холмс. Оба сорванца, казалось, совсем не были возмущены тем, что их разбудили таким грубым образом -- бросив короткий взгляд на Холмса в окне второго этажа, они, даже не взглянув на так бесцеремонно разбудившего их друга, рванулись к входной двери Бейкер-стрит 221б.
В этот момент во входную дверь позвонили. Холмс, как будто давно ожидая этого, ловко сунул спускающейся миссис Хадсон вчетверо сложенный лист бумаги, в котором явно позвякивала мелочь. "Передайте это юным господам, ожидающим нас внизу", - ответил он на удивленный взгляд миссис Хадсон.
Ватсон, наблюдая за троицей из окна, увидел, как те быстро развернули записку, в мгновение поделив находящуюся там мелочь и не удостоив текст внимания, перебежали обратно на другую сторону улицы. Там троица тут же направилась к более опрятно одетому и чуть более старше выглядящему пареньку с кипой газет к руках, который, судя по его активным движениям, призывал купить их. Паренек тут же кивнул, резво бросился к скамейке и аккуратно разложил на ней все те газеты, что он держал в руках: "Смотрите, Ватсон, на Ваших глазах происходит переключение контекста!", - не удержался Холмс от комментария.
И действительно, паренек уже держал в руках тот самый лист бумаги, в который Холмс завернул монеты, и что-то втолковывал внимательно внимавшей ему троице. Буквально через 20 секунд все трое, одновременно кивнув, разбежались: двое побежали в разные стороны по Бейкер-стрит, а Дженни, которого ранее представил Холмс, вернулся к своему посту под окном. Уже через минуту продавец газет снова стоял на том же месте, продолжая, судя по активной артикуляции и мимике, скандировать последние новости.
"И что же...", -- начал было свой вопрос Ватсон, отворачиваясь от окна. Однако поймав красноречивый взгляд Холмса, уже успевшего снять с книжной полки фолиант и вернуться с ним к окну, запнулся и снова повернул голову к окну.
"Смотрите, Ватсон, как многозадачность, при правильном подходе и алгоритме, может быть использована для успешного решения непростой задачи", с некоторой торжественностью в голосе сказал Холмс.
И действительно, за это время к Дженни успело присоединиться еще несколько мальчуганов, одетых так похоже, что Ватсон с ужасом понял, что уже не в силах узнать среди них того самого Дженни, которого он видел через задёрнутую штору. "А, это собирается наш пул потоков", как всегда малопонятно прокомментировал Холмс. Собравшаяся толпа уже перегораживала дорогу так, что кэбы, до этого проносившиеся по Бейкер-стрит, вынуждены были притормаживать как раз напротив окон Холмса.
Боковым зрением Ватсон уловил легкий кивок головы Холмса, и в тот же момент один из мальчишек резво вспорхнул на козлы притормозившего возле окна кэба. Задержавшись около кучера всего лишь на мгновение, он спорхнул вниз и резко побежал через толпу мальчишек в боковую улицу. На середине этого движения его достиг вопль кучера "- Кошелек! Держи его!", -- крик был различим даже через плотное стекло окон квартиры Холмса. Неожиданно мальчишка споткнулся, как если бы кто-то быстро выставил на его пути ногу, сделал кувырок и побежал дальше. Толпа, сгруппировавшись над местом падения воришки, вдруг резко разбежалась и один, оставшийся на месте исчезнувшей свалки, оглянулся и быстро засеменил, прихрамывая на правую ногу, к кучеру. В руке, несколько вытянув перед собой как важный трофей, он нес потрепанный кошелек из дешевой кожи. Обменявшись с кучером своим трофеем и получив взамен пару медяков, парень, загадочно улыбаясь, скрылся в боковой улице.
"Это, Ватсон, функциональная декомпозиция в действии", - голос Холмса прозвучал неожиданно для Ватсона, - "я всего лишь попросил их выкрасть у кэбмана носовой платок по моему сигналу, и ни в коем случае не красть денег. Выполнено блестяще, неправда? Кто из нас после возвращения кошелька с деньгами будет вспоминать о носовом платке, вероятно случайно оброненным в дороге? А этот малый, кажется Микки, что вернул кошелек -- Вы не представляете, Ватсон, какой успех он имеет на Пикадили, возвращая случайным прохожим украденные кошельки, и так -- пусть не совсем честно -- зарабатывающий свои медяки". "Каждый из них умеет лишь одно: либо ловко вытащить кошелек, либо вернуть его с наивным видом, и вместе они добиваются большего успеха, чем нежели просто те, кто крадет кошельки мирных граждан -- ведь в их случае на них вряд ли кто заявит в полицию. Вот Вам, Ватсон, классический пример функциональной декомпозиции".
За время монолога Холмса толпа мальчишек снова собралась под окнами и Дженни -- теперь Ватсон узнал его по выжидательному взгляду на окна -- был готов к новому знаку Холмса."
"А где же здесь многозадачность, Холмс?", - решил спросить Ватсон, " я вижу лишь многопоточность". Судя по короткому отблеску глаз Холмса, вопроса он явно ждал. "Ватсон, скажите, а Вы обратили внимание на номер кэба, ну того, кучера которого чуть не обокрали?". Ватсон, привыкший к неожиданным поворотам мысли Холмса, понял, что проиграл очередной раунд. "Вот!", - продолжил Холмс после небольшой паузы, довольный произведенным эффектом, - "а если бы обратили, то поняли бы, что это был кэб компании Эмеральд Кэбс с северо-запада. Чтобы проехать по Бейкер-стрит пустым",- Ватсон понял, что даже не обратил внимание на то, был ли кэб пустой или нет, - "ему явно пришлось свернуть с привычного маршрута -- и это вот уже работа второй группы. В их задачу входил поиск кэбменов по данным мною приметам и перенаправление их так, чтобы они обязательно проехали под нашими окнами. Прекрасная работа, где хорошо подходит декомпозиция данных: каждый из них, очевидно, выбрал себе по паре-тройке станций кэбов и прорабатывает их. По крайней мере, так я посоветовал им в моем послании", - тут Холмс удовлетворенно захлопнул книжку. "Амдал, между прочим, тоже недавно с Востока, как и Вы, Ватсон, как раз очень хорошо описывает в своем труде, какие условия нужны для такого эффективного распределения работы."
- А вот точно знакомый Вам Майкл ну, тот строгий профессор из Стэнфорда, наверняка бы подошел к данной проблеме более глобально. Он бы построил половину аспирантов прямо перед своими окнами на Невелл Роад в Паоло Альто, снабдив каждого однотипной инструкцией, проверять карманы и носовые платки каждого проезжающего кэба под безобидным предлогом. И это он называет SIMD, общий поток команд, которые он посылает через своих аспирантов, на множество потоков данных, в роли которых выступают проезжающие кэбы. На мой взгляд, куда бы эффективнее справился бы один аспирант, самый толковый, находящий свой подход к каждому их кэбменов, но такой вариант Майкл называет уже SISD и явно его не придерживается...
- Ватсон, я смотрю, Вы уже почти меня не слушаете!", - Холмс был явно доволен эффектом, глядя на глубоко задумавшегося Ватсона.
- Нет, Холмс, что Вы! Я просто пытаюсь представить себе MIMD, -- это как раз так, как поступили Ваши подопечные, разыграв сцену кражи?
- Нет, Ватсон, это как раз пример MISD, ведь все действия происходят с одним и тем же кэбменом. Для MIMD уважаемый нами Флинн, наверное, выбрал бы трех своих лучших аспирантов, каждый из которых встал бы в начале четырех параллельных Бейкер-стрит улицах. Тот, что стоял бы на Чагфорд-Стрит, предлагал бы каждому проезжающему обменять старый носовой платок на новый всего за один пенни. На Гленворд-Стрит другой бы утверждал, что он из госпиталя и для борьбы с эпидемией ему нужно проверить носовой платок на предмет возбудителя испанского гриппа. Ну а на Балкомбе-Стрит кто-то бы просто рекламировал новую прачечную, раздающую бесплатно новые носовые платки в обмен на старые. Заметьте, Ватсон, в каждом случае индивидуальный подход к индивидуальному человеку, причем на параллельных улицах.
- Браво, Холмс. Только человек с Вашей фантазией мог так глубоко разработать дело сыска. Я снимаю шляпу!
- Нет, Ватсон, почитайте же Флинна, нашего друга из Стэнфорда -- я всего лишь применил его теории к моему любимому делу.
На этих словах в дверь внизу так забарабанили, что казалось, на улице пошел град. "Мы нашли его, мы нашли его, мистер Холмс...", - одновременно кричало из за предусмотрительно приоткрытой только на цепочку миссис Хадсон дверью сразу несколько юных голосов.

------
Тест согласован с рассказом Конан Дойля "Study in Scarlet" (русской название "Этюд в багровых тонах") и с культовым фильмом "Шерлок Холмс и Доктор Ватсон: Знакомство. Кровавая надпись". В этом фильме эпизодическую роль Джефферсона Хоупа блестяще сыграл Николай Караченцов.

При написании текста использовались следующие источники:
[1] Улицы в округе от Baker Street 221b, London:
http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=London,+Baker+street,+221b&sll=51.52054,-0.157413&sspn=0.012791,0.025578&ie=UTF8&ll=51.524926,-0.157371&spn=0.006395,0.012789&z=16
[2] Население Лондона к началу 20-го века:
http://en.wikipedia.org/wiki/History_of_London#Population
[3] Сорта табака для трубки ("иранский"), взят сильный табак, не свойственный трубке:
http://kalyan-forum.ru/article/16/?PHPSESSID=de63b3cd47be39edcf76a48130fe220c
[4] Агенство "Эмеральд Кэбс"
http://uk.answers.yahoo.com/question/index?qid=20081004032106AAAsXRD
[5] Адрес Michael Flynn взят из его личного резюме, раздел "домашний адрес":
http://arith.stanford.edu/~flynn/flynncv.pdf

В тексте упоминаются следующие исторические личности:
1. Michael J. Flynn: http://en.wikipedia.org/wiki/Michael_J._Flynn
2. Gene Amdahl: http://en.wikipedia.org/wiki/Gene_Amdahl



Статистика форума

246 пользователей 277 тем и 2036 сообщений.
За последние 24 часа появилось 0 новых тем 0 новых сообщений и 0 новых пользователей

Самая популярная тема за последние 3 дня Найди ошибки. Пример 2. Больше всего ответов отправлено на сообщение Найди ошибки. Пример 2. Наибольшее количество просмотров у сообщения Здравствуйте,П

Приветствуем нового пользователя chat1983