в человеческом масштабе

топ 100 блогов avva07.05.2017 (эта запись может быть интересна программистам)

Представьте себе, что вы работаете бюрократом в большой организации. Каждый день вы сидите за столом в большом кабинете (где кроме вас сидят еще несколько человек, каждый за своим столом) и разбираете какие-то папки с документами, то читаете бумаги, то исправляете что-то, то печатаете новый бланк и добавляете в папку. Этих папок огромное количество и вам все время нужно находить правильные. Самые нужные вы положили к себе на стол, другие стоят в многочисленных канцелярских шкафах по периметру кабинета. Некоторых папок нет даже в шкафах, и за ними надо посылать в архив.

Если вы уже читаете какую-то папку, то прочитать следующее слово у вас занимает меньше секунды. Если не читаете, но она лежит у вас на столе - то найти ее и прочитать нужную строку занимает секунд 10. Если на столе нет, но есть в шкафах в комнате, то найти ее по учетному номеру, принести к столу, прочитать что надо - это уже где-то минута. Но иногда ее нет в шкафах, и нужно посылать запрос в архив - или ненужную больше папку отправить в архив, чтобы освободить место в комнате. И это очень долгое и муторное дело.

Архив по размерам - как целый город, а устроен он совершенно нелепо. В нем работает всего один старый больной хромой подслеповатый библиотекарь. По сложным историческим причинам добавить к нему коллег или заменить его невозможно. Когда он получает запрос на выдачу или папку на хранение, он долгие дни и недели идет черепашьим шагом по всему гигантскому архиву, пока ему не попадется нужная полка. В итоге получить папку из архива занимает примерно 4 месяца (!) - а вы тем временем делайте что хотите. Неудивительно, что вы и все ваши коллеги стремитесь как можно больше папок иметь при себе на столе или даже в комнате.

В последние годы, чтобы как-то улучшить скорость работы бюрократов, придумали несколько нововведений.

Во-первых, наряду с старым огромным архивом сделали новый, современный. Он не такой огромный, размером скорее с квартал, а не с город, и в нем работает целый отряд библиотекарей. Но он все равно далеко, сообщение с ним медленное, поиск в нем тоже не такой быстрый, как хотелось... короче, получить папку можно уже не за 4 месяца, а за день-полтора. И на том спасибо.

Во-вторых, в каждой комнате установили внутренний телефон, и теперь, если у вас в комнате папки нет, а у коллеги на другом этаже или в соседнем здании есть, то можно позвонить ему и попросить переслать копию папки по факсу. Это занимает где-то час, причем часть этого времени вы ждете, пока коллега закончит свои срочные дела и лишь потом найдет для вас папку. Это не очень удобно - факс-машина работает очень медленно, и коллега одновременно продолжает свою работу и все время отвлекается на то, чтобы новую страницу в нее зарядить. Вы сами очень не любите, когда вас такими запросами отвлекают. Но все же это куда лучше, чем день-полтора или 4 месяца.

И наконец, недавно даже и это улучшили. Начальство догадалось посадить в каждую комнату стажеров, которые с бумагами не умеют еще пока работать, но могут найти в шкафу, что нужно. Теперь, когда вам нужна бумага из чужого кабинета, вы говорите своему стажеру, он звонит туда и говорит с тамошним стажером, и они организовывают пересылку всего содержимого папки по факсу. Вашим коллегам даже отвлекаться не надо. Папка у вас на столе через 30-40 минут. Еще быстрее работа пошла.

----------------------------------

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

Вы, бюрократ, работающий с бумагами - на самом деле центральный процессор компьютера, или, если точнее, одно ядро процессора. Все временные задержки увеличены ровно в миллиард раз - вместо "секунда" следует понимать "наносекунда" и так далее.

Чтение папки, которая у вас в руках - это работа с данными, которые уже лежат в регистрах процессора. Найти папку на столе - это прочитать данные из процессорного кэша (неважно какого, L1/L2/L3 - 10 секунд это усредненные данные). Канцелярские шкафы в вашей комнате, найти папку в которых занимает минута - это рабочая память, RAM.

Архив с полуслепым инвалидом, который 4 месяца ищет вашу папку - это жесткий диск. Новый современный архив, из которого папка приходит за день-полтора - диски SSD.

Телефонная связь вместе с факсом - это быстрая локальная сеть. Переслать папку по факсу - прочитать данные из памяти другого компьютера, который расположен на одной локальной сети с вами. Наконец, стажеры - это технология RDMA, позволяющая читать через сеть память другого компьютера напрямую, не отвлекая тамошний процессор.

----------------------------------

Основные идеи, которые должен продемонстрировать этот рассказ - это насколько быстрее иметь нужные данные в рабочей памяти, чем читать их с диска; а если все же их нет в памяти, то насколько быстрее читать их SSD, чем с HD, и насколько через локальную сеть, чем с любого диска, даже SSD.

Идея не моя - я позаимствовал ее и немного развил из записи в блоге Адриана Кольера. Кстати, один из лучших блогов на свете для интересующихся компьютерными науками.

Оставить комментарий

Архив записей в блогах:
Здравствуйте. Пишу первый раз, поэтому может нескладно. Дано: дочь 9 месяцев, СС, ГВ, слинг/коляска. Проживаем в доме на два хозяина (совместно с родителями мужа). До родов отношения со свекровью были прекрасными, и меня не напрягало почти совместное проживание, после родов во мне проснула ...
Ситуации, когда возникает острая необходимость в деньгах, складываются часто. На рынке кредитования сегодня можно найти достаточно много предложений как от микрофинансовых компаний, так и банков. Последние отличаются более низкой процентной ставкой, но даже такие выгодные условия для ...
Заколебали эти маркетологи! Крупу по 1 кг не найти. 900г, 800г, 830г!!! Это неудобно отмерять, это неудобно понимать, где какая цена. Но я же всё равно посчитаю! Это дольше, но я посчитаю. Ищу яйца в онлайн магазине. Я уже привыкла, что бывают упаковки по 6 штук, крупные. Упаковки по ...
Арешидзе: Я сегодня же бы дал независимость Абхазии ( http://abkhazeti.info/abkhazia/2011/1308164674.php ) Давайте попробуем без эмоции разобраться, что это даст нам и абхазам. Признавая независимость Абхазии, мы узакониваем этнические чистки, мы признаем ...
Посоветуйте мне, пожалуйста, какие-нибудь хорошие и компактные настольные игры для поездок. Возможно, есть что-то, о чем я не знаю. Такое, чтобы без большой коробки и чтобы не занимало много места на столе (а то мы любим в ресторане играть, пока заказа ждем). На троих. Что я знаю: 1. На ...