А.А.Гусев.

Краткая история ГИПО

 

С начала детальных сейсмологических исследований на Камчатке (1961 г) определение гипоцентров местных землетрясений осуществлялось с помощью «ручной» графической процедуры – метода палеток изохрон Ризниченко. С.А.Федотов, начальник камчатского подразделения ИФЗ, чуть позже названного ТСЭ, в 1967г поручил мне реализовать возникший у него план перевода процесса определения гипоцентров на  ЭВМ. Метод палеток изохрон – простой и эффективный, но он существенно опирается на использование вступлений S-волн и интервалов S-P. В условиях камчатской сейсмической сети снятие вступлений S-волн часто ненадежно или невозможно. Отсутствие определенного рода исходных данных, конечно, ухудшает точность решения обратной задачи. Но ситуация с вступлениями S-волн намного неприятнее. Бывает, что руководитель среднего звена требует от техников снимать побольше столь ценных вступлений S-волн и они, чтобы ему угодить, начинают «видеть» их в шуме. Использование графика Вадати при этом подсказывает техникам, где именно в шуме ожидать вступление. В результате такой фальсификации данных возникают фиктивные времена прихода фазы S и за счет их использования - необнаружимые, но иногда существенные систематические ошибки гипоцентра. Полученным результатам затем приписывается искусственно завышенная точность за счет фиктивного увеличения объема исходных данных. Понятно, что было желательно избавиться от подобных проблем.

Когда в отделе методов интерпретации ИФЗ (В.И.Кейлис-Борока) под руководством И.П.Шапиро-Пятецкого командой классных математиков и программистов была создана и внедрена программа ЭПИ для определения гипоцентра на земном шаре только по вступлениям Р-волн, этот факт вызвал надежду, что и в региональной задаче, для региона Камчатки, удастся обойтись, вовсе или в основном, без проблемных вступлений S-волн. Летом 1967 г под руководством и с помощью Т.П.Желанкиной на БЭСМ-4 в Алма-Ате я начал переработку программы ЭПИ для региональных задач. Работа была продолжена на БЭСМ-3М в Вилючинске. Машинное время в Вилючинске давали с 3 до 5 ночи, и особенно интересно было туда ехать в начале пурги. К концу 1968 г стало ясно, что без вступлений S-волн ошибки решения многократно растут, и решение на ЭВМ явно проигрывает «ручному» решению. (Поясню, что при полном комплекте пар вступлений P и S гипоцентр определяется по схеме графического геодезического "метода засечек", в то время как при использовании только данных Р-волн процедура аналогична известному "методу гипербол", точность которого в разы хуже.) Началась переделка программы для учета совместно Р и S волн. Однако задача с трудом умещалась в оперативной памяти БЭСМ-3М объемом 4096 45-разрядных слов («куб МОЗУ», модуль ОЗУ на ферритовых кольцах). К тому же программирование в восьмеричных (в сущности, в двоичных) кодах, будучи неудобным само по себе, особенно неудобно при доработке чужой программы, когда необходимо «ставить заплаты», то есть дописывать новые куски на свободном месте памяти и запускать их через уход с возвратом из перегруженного старого куска. Возник вариант переработки программы для работы на двух кубах МОЗУ, что требовало ее полного переписывания (из-за другой схемы адресации) но он был отвергнут. Было бы удобнее работать не выезжая из города, на Минск-22, имевшейся в Петропавловске в областном статистическом управлении, и не зависеть от шторма летом и от пурги зимой.

По предложению сейсмологов САХКНИИ, также заинтересованных в задаче, работа была начата на Минск-22 САХКНИИ в Южно-Сахалинске, где были созданы приемлемые условия для быстрой работы (1970 г). Первоначально алгоритм был переписан на ассемблере Минск-22 («автокод АКИ»), но скоро выяснились его слабости для большой задачи. Немедленно алгоритм был переписан на имевшуюся там же версию Алгола («Алгамс»). Попутно были освоены местные продукты – лимонник и кимчи. Снова возможности компилятора («транслятора») и ЭВМ были перегружены; но для того, чтобы убедиться в наличии тупика, был потрачен еще год. Затем работа несколько замедлилась в ожидании появления новых вычислительных мощностей на Камчатке. Но время не было вполне потеряно. Алгольная версия алгоритма была, наконец, вполне успешно реализована с транслятором из ГДР на мощной британской ЭВМ ICL 4-70 (клон IBM360) в ИАТ в Москве (1972 г). Была эпоха СОСОМ, и я пару раз видел британских контролеров, которые следили (явно сквозь пальцы), чтобы британская техника по лицензии США не решала военно-технических задач. Там и правда решались, среди неизвестного мне прочего, и невоенные задачи, например М. Донской создал программу - чемпиона мира по шахматам 1971 г. (среди программ)

Появление в ДВНЦ во Владивостоке ЭВМ M-220 с четырьмя кубами МОЗУ и двумя разными Алгол-трансляторами вызвало новые надежды (1974 г). Но через два месяца плотной работы во Владивостоке на избранном трансляторе обнаружился новый тупик. Другой транслятор стал выглядеть перспективнее, но было ясно, что работы будет еще много, хотя бы уже потому, что кодировки входного языка для этих трансляторов (6 семибитных байтов укладываются в 45-разрядном слове, 3 бита лишние) были несовместимы. Все изменилось с появлением неплохой ЭВМ М4030 (советский клон IBM360) на ВЦ ИАПУ ДВНЦ во Владивостоке. Алгоритм был переписан с Алгола на Фортран-4 и программа была запущена в ограниченные сроки – в 1975 г; это была первая функционирующая Фортран-программа на ВЦ ИАПУ. Заодно научился ловить гребешков и (редко) трепангов. Однако пускать работающую программу на Камчатке было негде. Но в 1976 г появился Минск-32 с Фортраном-4 в статуправлении в Петропавловске. Программа была вскоре там запущена, и началась доводка деталей алгоритма на основе массовой параллельной обработки «вручную» и на ЭВМ. В 1978 г после обсчета более 600 решений приемлемый для работы в региональной сейсмической службе вариант программы ГИПО был передан в эксплуатацию, где и пребывал до 2010 г., в сущности, без изменений.

Суммарно, разработка программы ГИПО заняла 10 лет, причем использовались

четыре типа ЭВМ (М20 и ее варианты: БЭСМ-3М, БЗСМ-4, М220; Минск 22; Минск 32; клоны IBM360: ICL4-70, М4030).

четыре языка программирования (коды М20, Автокод АКИ, Алгамс-Алгол, Фортран-4)

11 ЭВМ (в Алма-Ате, Черноголовке, Вилючинске, Южно-Сахалинске, Петропавловске (две), Владивостоке (две), Москве (три).

 

Для заинтересованных дадим технические детали. Программа ЭПИ реализовала итеративный нелинейный вариант МНК (метод Гейгера) без начального приближения, с обходом фиктивных минимумов («оврагов») путем дробления шага и многократной смены начальной точки поиска. Программа ГИПО реализует аналогичный по сути алгоритм, но в модификации Левенберга-Марквардта. Добавлена система весов уравнений для учета типа фазы (P или S ), гипоцентрального расстояния и качества вступления (i, e, ee). Добавлены также элементы робастности, обеспечивающие устойчивую работу в случаях умеренного числа грубых ошибок снятия времен вступлений фаз. Программа ГИПО также обнаруживает и,  в случае обнаружения, определяет два качественно различных варианта решения (два осмысленных минимума среднеквадратической невязки), заметно отличающиеся по глубине (обычно около 10 и около 100 км). Также строится линеаризованная оценка области ошибки решения.

 

Теперь исторические анекдоты.