Вершина нашего развития [Машины и мы 01]
Jan. 13th, 2015 09:54 amЭто первая статья в, как я надеюсь, целой серии заметок о несправедливо игнорируемом аспекте нашей современной цивилизации.
Развитие цивилизации это коллективный путь к расширению наших знаний, всё остальное вторично: энергия, промышленность, космос - всё это плоды нашего стремления к познанию. Нужно понять цепочку причинно следственных связей, больше доступной информации -> больше знаний -> больше эффективных устройств -> больше энергии мы можем получать. Стоит вспомнить, что первые паровые двигатели - самые сложные механизмы ХVIII века - работали как насосы в угольных шахтах.
Поэтому сначала новые знания и новые механизмы, а уж потом новая энергия в необходимом количестве. Так что давайте отбросим разные предрассудки и скажем прямо: пик развития нашей сегодняшней цивилизации это iPhone. Вот пусть он у нас и отвечает за новые источники энергии.
Сири, где ближайшая бензоколонка?
Как я уже писал раньше, предшественником первой индустриальной революции был печатный станок Гуттенберга. Это изобретение позволило поставить процесс накопления и распространения знаний на экспоненциальный путь развития. Третья же индустриальная революция, перед порогом которой мы все сейчас топчемся, обусловлена изобретением и развитием информационных технологий. Компьютер - это одновременно и источник накопления и распространения знаний и один из самых сложных механизмов, которые мы сейчас способны делать. По аналогии с историческими событиями, это наш печатный станок и наша паровая машина.
Если первая индустриализация была процессом автоматизации крупной механической работы в разных отраслях, то информационная революция позволила автоматизировать само накопление и производство новых знаний. Для тех, кто уже два абзаца презрительно ухмыляется насчёт любителей айфонов, и пойдёт наш рассказ. Влияние компьютера на наше существование гораздо более фундаментально, чем может показаться из каждодневного опыта.
На секунду отойдём от гадских айфонов и разберёмся с одной из самых брутальных мужских профессий, а именно геологической разведкой.

Геологи в поисках нефти. С романтикой гитар и палаток что-то пошло не так.
Добыча нефти, так же как и победа в военном сражении, невозможна без разведки. Ещё до начала бурения скважины вы должны хотя бы примерно представлять что вас ожидает под землёй, должна быть какая-то карта. Без карты добыча нефти превращается в попытку угадать вкус арбуза по узору кожуры. Основной метод разведки это сейсмическое исследование недр. Как это происходит?
Берут мощный источник вибрации, чтобы сгенерированные им волны имели достаточно энергии для проникания на необходимую глубину. Это либо специальный вибратор на шасси грузовика, либо углубление/скважина с заложенной туда взрывчатой. Упругие волны распространяются в глубину земных пород и частично преломляются и отражаются от разных слоёв обратно к поверхности, где их принимают сейсмоприёмники. Данные записывают специальным самописцем и вместе с данными об упругих свойствах горных пород это позволяет построить карту геологического среза глубиной до десяти километров. Теперь можно понять где находится нефтяная ловушка.
Используя метод вы видите двухмерное сечение поверхности, вместо объёмной картины. На виде “сверху” это выглядит как линия, а плоскость сечения видна при виде сбоку. Типа такого:
Результат 2D-сейсмической разведки. Нефтегазовые ловушки отмечены зелёным.
Понять реальность на основе этого снимка это как попытка опознать что нарисовано на правой картинке, открывая слева только отдельные линии:
Это возможно, если вы примерно знаете что ищите - к примеру, что это картинка некого человека или же вы определили хотя бы примерно где находиться нефть и вам нужно только уточнить ваши данные. Но с исчерпанием близких к поверхности месторождений нефти с простыми геологическими условиями метод становиться все менее эффективным и нужно покрывать всё бОльшую площадь со всё большей детализацией. А затраты на такое исследование растут пропорционально количеству наблюдений, которые вы записываете, а количество наблюдений растёт в квадрате с ростом площади исследования.
После некой границы ручная обработка данных становиться слишком дорогой и это ограничивает возможности добычи нефти, также как затопляемость английских угольных шахт и мощность ручной/лошадиной откачки ограничивала добычу угля. В обоих случаях понадобилась помощь специальных машин. Для английских шахт нужен был паровой насос, автоматизирующий откачку воды, а для добычи нефти - компьютер, записывающий и просчитывающий за вас всё увеличивающиеся объёмы данных сейсморазведки.
Разведка без iT - деньги на ветер
История сейсмики вертится вокруг компании GSI, которая её первой успешно применила в 1924 году, и информационных технологий. К 1950-м вместо бумажных носителей стали использовать магнитную ленту и аналоговую электронику на базе транзисторов. Пионером в этой инновации было подразделение GSI с неизвестным в то время названием “Texas Instruments” (легендарный изобретатель интегральных схем), а лицензию на производство транзисторов Texas Instruments купила именно для обслуживания потребностей сейсмической разведки. В 1960-х годах был переход от аналоговых систем к первым коммерческим цифровым компьютерам, что позволило увеличить скорость обработки данных и детализацию. Но всё ещё оставалось главное ограничение метода: двухмерность результата.
Первый эксперимент по производству трёхмерных сейсмических карт был проведён в 1972 году силами вышеупомянутого GSI и шести крупных нефтяных компаний. Сбор данных (500000 отдельных записей) занял месяц, компьютерная обработка целых два года. Для нефтяной индустрии проект по сложности был сравним с запускам первого спутника для космонавтики и результат оказался выше всяких похвал: на считавшемся исчерпанном нефтяном плее в штате нью-мексико удалось найти несколько новых месторождений.
Широкое распространение метод получил только в начале 1980-х годов прошлого века и только с развитием нового поколения суперкомпьютеров. Чтобы понять причины, достаточно посмотреть на стоимость одного гигафлопса в фиксированных долларах - ведь только в 1980-е стоимость обработки таких объёмов данных за нормальные сроки стала доступна отдельным крупным компаниям.
Расшифровка данных 3D-сейсмографии требовала колоссальных вычислительных ресурсов и компании 3D-сейсморазведки занимались обработкой полученных данных на мощных суперкомпьютерах того времени. Вот, например, прессрелиз 1996 года о заключении контракта между нефтяной компанией и университетским вычислительными центром Minnesota Supercomputer Center Inc (MSCI), где обработка данных велась на суперкомпьютерах CM-5 от Thinking Machines и T3D компании Cray. Вычислительная мощность составляла 52,6 и 76 гигафлопс, то есть практически без отставания от мирового лидера (150 ГФлопс), а CM-5 даже успел этим лидером побывать. Просто для интереса, параллельно написанию этого текста, я запустил бенчмарк на своём домашнем 4-ядерном core-i5 и получил значение в 89.25 гигафлопс.
Нефтегазовый айфон
Логика причинно-следственных связей тут проста как знаменитое “утром деньги, вечером стулья”. Сначала суперкомпьютеры, потом результативная разведка, потом нефть. В наши дни мы уже не так ограничены вычислительными возможностями и можем обрабатывать на порядки больше данных, чем мы могли даже в конце 1990-х. Из этого следует, что площадь сейсмических исследований уже по сути не ограничена этим аспектом. Но реалисты уже спешат напомнить, что мы живём в физическом мире где нельзя просто взять и опутать 10000 квадратных километров проводами и микрофонами. Что фура с проводами на картинке ниже в этом случае должна быть заменена карьерным грузовиком, а может и целым железнодорожным составом. А количество укладчиков будет сопоставимо с армией КНДР. Да, вы правы, правы.
Ax, если бы мы могли избавиться от проводов, если бы у нас было устройство с сенсорами, микрофоном, GPS, радиопередатчиком, процессором, позволяющим управлять всем этим добром в реальном времени и, конечно, достаточно мощной батарейкой для бесперебойной работы. Кто сказал айфон?
К сожалению, идея уже реализована американской компанией в 2012 году:
Метросексуалы с айфонами в модном электрокаре (слева) против брутальных мужиков с прицепом проводов (справа)
Не отстаёт и православная Газпромнефть, которая испробовала эту технологию сначала в горном и опасном Курдистане, а теперь вовсю использует в замороженных лесах западной Сибири:
Какой вывод? Главное не то что мы имеем от природы и где живём, главное это сумма наших знаний. На примере нефти, не надо пенять на природу, что она дала нам мало нефти - надо просто уметь её искать и добывать. До тех пор, пока мы продолжаем как вид увеличивать сумму знаний, наши возможности будут расти, ведь вселенная переполнена энергией и нужно просто знать как её взять. Сейчас самым главным инструментом познания для нас является компьютер, без которого современное существование просто невозможно. Хотите узнать потенциал цивилизации? Узнайте сколько у неё суперкомпьютеров.
Совместно с
plaksiva9tr9pka
no subject
Date: 2015-01-13 12:22 pm (UTC)Это вы не понимаете, что есть и такие алгоритмы, которые _можно_ улучшать. И поймите, что алгоритм - это еще не софт. Одну и ту же сортировку массива пузырьком можно написать быстро, а можно натупить так, что хоть застрелись. И не все упирается в данные и алгоритмы. Есть еще параллельные вычисления. Слышали про язык cuda и платы тесла с 4мя, что ли тысячами процессоров? То есть у вас сейчас четырехядерный проц и вы считаете себя крутым перцем - а там на одной плате за условно триста баксов - четыре тысячи(!) ядер. Конечно, они слабенькие, большая часть даже не может оперировать числами с плавающей точкой. Но эти ваши "доказанно навороченные" алгоритмы можно написать, допустим, неоптимально, зато для параллельных вычислений. Понимаете? Новое измерение для оптимизации.
no subject
Date: 2015-01-13 01:09 pm (UTC)Я ведь не утверждаю, что абсолютно всё написано оптимально, да можно многое оптимизировать особенно в коммерческом софте, но у любой оптимизации есть свой предел.
no subject
Date: 2015-01-13 01:25 pm (UTC)Если у вас регулярные наблюдения, то вы уверены что каждое значение будет меняться примерно с частотой наблюдения? Если нет - вот еще один простор для сжатия, храните не значение 1/0 для каждого измерения, а число измерений с неизменным значением.
Ну и так далее. Я думаю, я вам показал, что использовать, скажем, массив из 257 двухбайтных слов для хранения однобитных значений - бессмысленно. А ведь именно так все сейчас и делают, когда память дешева.
Вообще - бессмысленно невереное слово. Неэкономично в плане памяти, но очень экономично для сметы разработки.
Конечно, предел есть - но он не то что не достигнут, он даже не берется в рассчет. То есть оптимизация данных или кода сейчас никого не интересует, потому что на нее надо, условно, человекомесяц работы дорогостоящего программиста, плюс его начальство, плюс тестировщики плюс аренда офиса, плюс маркетологи плюс задержка выхода релиза - тогда как лишняя плашка оперативки стоит в сотни тысяч раз дешевле, да и платить за нее будет потребитель. Понимаете? Если бы пропорция была обратная - то есть имело смысл программерам вылизывать алгоритмы, ужимать данные и все на свете оптимизировать за счет работодателя или из религиозного экстаза - вы бы поразились результатам.
Собственно, образцы офигенского арта в лабании софта я приводил - феерические разнообразные игры для программируемых калькуляторов. Необходимость - мать изобретательности.
Опять же не забывайте, что если делать быстрый и экономичный софт, то никто не купит вам новый комп. И наоборот.
no subject
Date: 2015-01-13 09:07 pm (UTC)no subject
Date: 2015-01-14 05:29 am (UTC)Если же у вас ОДНО число, которое может принимать значения от нуля до 257 - то да, для него вам нужно два байта. НО - если же у вас уже сотни тысяч значений, каждое от нуля до 257, то есть десятки способов уложить их в куда меньше пространство чем двести килобайт. Выбор способа зависит от характера значений, но в целом можно ожидать сжатия более чем в половину.
Что, никогда винраром не пользовались?
Вы видимо далеки от области, если правда считаете что программы на суперкомпах сверхоптимизированы или оптимально вылизаны. Это не так (пфф, это вообще не так). Это точно такие же программы, написанные теми же спустярукавашниками, что все остальные. Откуда взяться другим-то? Именно об этом я и говорю - нет ни сил, ни времени на "оптимальное вылизывание", куда проще и ДЕШЕВЛЕ - не говоря что БЫСТРЕЕ - просто сунуть еще один комп в блейд-корзину и тем гарантированно увеличить производительность на сколько-то там процентов.
Я говорю простую мысль - вот если бы дополнительный комп в корзину не лез, если бы возможности аппаратного увеличения облака не было - вот тогда да, тогда начали бы платить программистам не за скорость разработки и красивый интерфейс, а за оптимизацию.
no subject
Date: 2015-01-14 07:31 am (UTC)Но вот вы даёте пример с компрессией как пример бесконечной возможности оптимизации, но нам уже очень давно известно какая максимально возможная компрессия теоретически возможна для каких данных.
Есть теория информации которая даёт исчерпывающий ответ на это вопрос. Так, что заранее известен придел оптимизации.
Насчёт супер компютеров вы абсолютно не правы.
no subject
Date: 2015-01-14 07:56 am (UTC)И потом - зачем говорить о теоретических пределах сжатия, если имеющиеся сейчас тенденции говорят вообще об обратных трендах - не тратить усилий на экономию грошовой памяти, а наоборот - хранить все, служебную инфу, логи, кеши? Нам бы "на ноль" выйти, уже хорошо.
В вашем примере - уверен что 99.99% программистов для хранения значений от 0 до 257 выберут не просто четырехбайтовый (обычный, а не двухбайтный укороченный) инт, а еще и с одним битом на знак, да и тот засунут в громоздкий контейнер с указателями или итераторами, а то и в унаследованный класс. И не то что не поморщатся - даже не обратят внимания.
Помните "Основание" у Азимова? Основание специально разместили на бедной ресурсами планете и они занялись миниатюризацией. Трантору это было необязательно - ресурсов много и они дешевы, потому они могли позволить электростанцию размером с город или как там.
Еще интересный пример - Юрий Никулин говорил, что всю жизнь собирал анекдоты. Чтобы не забыть, он их записывал в тетрадку - но не целиком, а одной-двумя фразами. Иногда даже парой слов. И подразумевалось, что даже через десятилетия он мог вспомнить по ним анекдот целиком. Что это, как не сжатие данных? Однако очевидно, что опубликовать такой список как есть смысла не было. Никулин экономил бумагу (когда он завел такую привычку, это могло быть актуальным вопросом, но сейчас уже смешно), но упустил возможность когда-нибудь издать все это как есть, без переделки. Это я к вопросу о экономической целесообразности сжатия.
Я помню как купил свой первый хард на гигабайт. За 400 долларов в ценах двадцатилетней давности. Счастлив был как слон - я забекапил туда четыре рабочие машины без сжатия, с операционкой, своп-файлами, копиями дистрибутивов. Сейчас в тысячу раз большая флешка в формате microSD стоит втрое делевше. Смысл ужиматься, устранять дублирование, архивировать? Я могу просто купить еще одну флешку и забэкапить первую. И даже не заметить по бюджету.
Я не знаю, на чем основана ваша уверенность о каком-то ином уровне качества софта для суперкомьютеров. На цене, заявлениях продавца, общем впечатлении что "в суперкомпьютере все должно быть супер"?
Подумайте просто - откуда там взяться чему-то принципиально иному. Программистов там набирают не на других планетах и даже учат не в других вузах, инженеров тоже. Масштабы другие, но экономические ограничения те же - надо это делать чтобы получать прибыль, а не для красоты или любви к искусству. Или вы думаете, что индустрия софта для персональных ЭВМ, все эти силиконовые долины миллионеров - это детский сад рядом с потребностями нескольких тысяч покупателей суперэвм? Типа на персоналки фуфло гоним, а ради единиц расстараемся?