Прогностические модели и международный обмен метеоинформацией

Shoorick
2016-12-27 22:44:15
kir_vik
Это к теме о случайных числах в каком-то знаке.
"Представляя переменные с плавающей точкой в стандартном виде, С++ учитывает после десятичной точки только первые 13 разрядов. Остальные разряды становятся жертвами ошибочных округлений".
Поэтому вряд ли виновата машина в различии выходных данных.

Поздновато, но прокомментирую. Добавлю к дискуссии о разных результатах прогонов с одинаковыми начальными данными.
WRF написан на фортране, не C++, но суть такая же.
Суть самого числа с плавающей точкой такая, что в нем есть несколько значащих разрядов, а в последнем неизбежно будет накапливаться ошибка округления.
Ошибка может быть разной, если изменить последовательность операций. В компьютере (A+B)+C не всегда равно A+(B+C).

Более того, есть и более тонкие моменты. Например, в Intel написали статью про согласованность результатов с плавающей точкой или "Почему моя программа не всегда дает один и тот же ответ?" https://software.intel.com/sites/default/files/art icle/164389/fp-consistency-110212.pdf
И в ней аж 2 примера конкретно про WRF (Weather Research and Forecasting model).

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

Итого, я так полагаю, что никто особо не заморачивается достижением идеальной повторяемости результата на одинаковых входных данных. Ну есть какая-то "плавающая" ошибка в каком-то знаке результата, и ладно. Важнее считать быстрее. А если изредка сработает эффект бабочки, этот случайный выброс скомпенсируется ансамблем.
surok
2016-12-27 23:50:57
Shoorick
Даже при разных запусках одной и той же программы один и тот же массив данных может лечь чуть иначе в памяти, процессоры его разберут чуть в другом порядке, опять же изменится последовательность операций, и - другой результат.

Насколько я понял, только это в вашем сообщении объясняет разные результаты при одинаковых запусках.
Но вот что значит "лечь чуть иначе в памяти" и почему это влияет на распараллеливание, не понимаю.
Shoorick
2016-12-28 01:08:12
surok
Насколько я понял, только это в вашем сообщении объясняет разные результаты при одинаковых запусках.
Да. Но другие случаи тоже важны: когда программа (в данном случае WRF) переносится на другой компьютер, или на том же компьютере компилируется с другими настройками оптимизации. С т.з. перфекционизма тоже ведь хочется абсолютно идентичных результатов прогона:)

Но вот что значит "лечь чуть иначе в памяти" и почему это влияет на распараллеливание, не понимаю.
Не хотел сразу писать много.
Тут особенность этой самой векторизации циклов. Имеет значение выравнивание.
Предположим, надо 4 процессорами обработать массив из 23 элементов. Векторизованный цикл будет таким:
1. Пролог. Медленная обработка от 0 до 3 первых элементов.
2. Ядро. 5 циклов, за каждый из которых обрабатывается 4 элемента.
3. Эпилог. Медленная обработка от 0 до 3 последних элементов.

Ядро будет быстрее работать, и его будет проще автоматически распараллелить, если каждые 4 элемента будут выравнены в памяти. Например, если в каждом цикле ядра будут считываться ячейки с физическими адресами 0,1,2,3; или 4,5,6,7; или 48,49,50,51. Но не 3,4,5,6 или 49,50,51,52. Т.е. остаток от деления адреса первого элемента на 4 должен быть равен 0.
Если придет массив из 23 элементов с адреса 47, то в прологе обработается 47, в ядре 48-67, в эпилоге 68 и 69. Если следующий раз он будет по адресу 48, то в прологе будет пусто, в ядре 48-67, в эпилоге 68-70. Надеюсь, понятно.

Теперь почему он в одном запуске по адресу 47, а в другом 48. Предположим, чуть выше в данных для каких-то случаев хранится название текущего дня недели.
Запускаем в разные дни недели - массивы данных чуть сдвигаются, в прологи и эпилоги попадают разные элементы массива данных, он обрабатывается чуть в другой последовательности, ошибки округления другие, результат другой. Магия.
surok
2016-12-28 09:36:35
Shoorick

Полез что-нибудь почитать про "пролог-ядро-эпилог" и сразу наткнулся на эту статью, в которой автор говорит о том же, что и вы:) Подробностей я не понимаю (просто не знаю предмет), но в общих чертах причины такого явления теперь представляю. Но, если я правильно понял, настройками можно добиться устранения этих различий в результатах. То есть для моделистов атмосферы это не должно быть проблемой.
Shoorick
2016-12-28 15:04:42
surok
Но, если я правильно понял, настройками можно добиться устранения этих различий в результатах. То есть для моделистов атмосферы это не должно быть проблемой.
Можно. Но надо понимать, что в общем случае ценой настроек для повторяемости будет потеря производительности.


Shumikhina
уважаемые участники клуба! знает ли кто-нибудь из вас о том, какой моделью пользуется сайт http://www.wunderground.com/ ?
Обладатель метеостанции утверждает, что "wunderground - это ресурс, учитывающий данные любительских автоматических метеостанций
surok
Forecast input: A variety of inputs, including, but not limited to, ECMWF, GFS, and NAM

Мне тоже интересно, как они считают. Осенью в Грузии в прогнозе осадков они были гораздо точнее gismeteo (ECMWF?) и др. Чуть хуже WU были BBC (UKMO?).
При этом в горах данные любительских метеостанций точно не подтягивались: ближайшая была отмечена отключенной уже две недели.

Посмотрел сейчас: и на wundeground.com, и на weather.com показывается подпись "An IBM Business" (поменялся собственник?). Прогнозы чуть разные.
matrix145
2017-01-09 19:04:17
Верификация прогноза на 24 часа на сайте «Погода 45»

В середине ноября на моём сайте «Погода 45» появился прогноз на 24 часа, в котором указывается ход температуры в течение суток и прогнозируемое количество осадков. Спустя 50 дней после запуска я решил проверить качество этого прогноза по ряду критериев и сопоставить их с другими прогнозами.

Подробности - http://www.winstein.org/blog/verifikacija_prognoza _na_24_chasa_na_sajte_pogoda_45/2017-01-09-277





COT1990
2017-01-11 14:40:19
matrix145
Так получается что оправдываемость краткосрочных прогнозов
так сильно хромает? и это не смотря на достаточно гуманное
наставление (+-3*С) Росгидромета по краткосрочным
прогнозам погоды общего назначения.
Но 86% тоже достойный результат
ЗЫ: А как делать подчеркивания текста (ссылку) заменяя словами вместо набора интернет-адреса?



matrix145
Corvus

У нас на руках появился электронный архив
АМЦ Стригино (27553) с 1936 года по 2000-ые?

Правда он закодирован:

Удалось выделить даты, и сроки наблюдения (6 часовые)


Не подскажите, как его "прочесть"?
А лучше найти подходящий софт для раскодировки,
там только 400 станиц за 4 года вот такого "кода".
Можно год потратить на переписывание.

Можно ответить и здесь:
http://meteoclub.ru/index.php?action=vthread&forum =4&topic=2297&page=1
Corvus
2017-01-11 15:33:41
как делать подчеркивания текста (ссылку) заменяя словами вместо набора интернет-адреса?

COT1990

С помощью кнопки с глобусом.

Там после url надо вставить ссылку, а между ][ - текст ссылки.
Corvus
2017-01-11 15:37:03
У нас на руках появился электронный архив
АМЦ Стригино (27553) с 1936 года по 2000-ые?

Правда он закодирован:

Удалось выделить даты, и сроки наблюдения (6 часовые)

COT1990

Надо Костяна спросить. В интернете всего несколько файловых метеоархивов, к ним прилагаются описания форматов (инструкции по расшифровке). Вероятно, он подскажет, с какого сайта эти данные.
Имя файла можете указать?
kostian
2017-01-11 15:58:43
COT1990
Не подскажите, как его "прочесть"? А лучше найти подходящий софт для раскодировки,

Можете прислать на kostian_k[{спамунет}]inbox.ru ? Попробуем раскодировать.
COT1990
2017-01-11 17:09:53
Corvus
Имя файла можете указать?

Расширение файла - dat
COT1990
2017-01-11 17:11:16
kostian
ой я в почтах не очень:
[{спамунет -это как?
Я вам так отправлю, прямо сейчас
Или мне письмо напишите, я вам с почты отправлю файл
kostian
2017-01-11 17:17:34
COT1990
спамунет -это как?

[{спамунет}] - это значит защита от ботов, собирающих email адреса в интернете. :) Просто меняете на собачку @.
COT1990
2017-01-11 17:39:30
kostian
Отправил
kostian
2017-01-11 17:51:19
COT1990

Получил! Буду изучать. Сообщу о результатах.
kostian
2017-01-11 18:19:26
COT1990

Посмотрел. Так это не аэропорт вовсе, а станция 27459. Аэропорт ведь только с 1941 года работает. Там в принципе не может быть данных с 1936 года. А этот архив вы можете в раскодированном виде на http://meteo.ru/data скачать.
matrix145
2017-01-11 20:18:20
COT1990

Здесь есть множество факторов, которые необходимо учитывать.

1. Зимой оправдываемость по температуре значительно ниже, чем летом.
2. Если мы будем оценивать точность прогноза максимальной и минимальной температуры, то у нас будет всего 2 значения, значит и точность будет выше. Сейчас модели легко выдают 90-95%, а в некоторых случаях и выше. Но когда у Вас есть выборка из 8 значений за сутки, то вероятность "непопадания" возрастает.
Morozov_S
2017-01-11 23:25:09
kostian
Так это не аэропорт вовсе, а станция 27459.
Не похоже. Надо сопоставлять данные. Например за 16.12.1997 г. очень похоже на Стригино. Возможно там часть данных с Мызы, часть со Стригино, данные которого шли в международный обмен до начала 2000-х как Нижний Новгород, и лишь затем были заменены на Мызу 27459.
kostian
2017-01-11 23:46:12
Morozov_S

Да, действительно. Я поторопился с выводами: взял наугад 1990 год, там была 27459. Надо тогда понять, с какого момента там начинается аэропорт. С августа 1994 по 2000 тогда можно будет дополнить архив, т.к. этих данных в американском архиве ISH нет.
kostian
2017-01-12 00:29:20
Morozov_S

Собственно, аэропорт, похоже, с 1991 по 2000 годы в этом архиве идет. А с 1936 по 1990 - Мыза.
Corvus
2017-01-12 07:27:25
аэропорт, похоже, с 1991 по 2000 годы в этом архиве идет. А с 1936 по 1990 - Мыза.

Я тоже об этом подумал.
Вообще в СССР старались избегать отправки в межд. обмен СИНОПов аэропортов (дабы враг не собирал статистику и не рассчитывал климатические характеристики аэродромов, которые могут пригодиться в военное время). Старались слать СИНОПы с городских (неавиационных) МС, они почти в каждом крупном городе есть.

Ну и МЕТАРы с ТАФами до 1993 года шли в межд. обмен только с очень небольшого числа международных аэропортов, которые были тогда в СССР (штук 20). Остальные аэропорты СССР обменивались метеоинформацией только внутри страны (и использовались для этого до 1993 года русскоязычные коды ФАП и АПП).
С 1993 года в РФ и странах СНГ внедрены коды МЕТАР и ТАФ, число международных аэропортов стало быстро расти, а с ним и кол-во аэропортов, информация по которым пошла в межд. обмен.
COT1990
2017-01-12 10:20:47
Corvus kostian
Жаль конечно, что данные оказались не по Аэродрому.
А почему тогда индекс стоит вначале АМЦ (27553)?

kostian
А откуда у вас сведения о работе МС аэродрома с 1941?

А этот архив вы можете в раскодированном виде на http://meteo.ru/data скачать.

К сожалению, это единственный сайт (имеющий архив ВНИИГМИ-МЦД),
с которого мне так и не удается получить
метеоданные. Как неприступная крепость.
Я бы по работал бы с этими данными).

Правда из=за неразберихи 90-х и начала 00-х годов, ошибочные данные
(как минимум за 2004, 2005 год) проникли и на сайт Погода и климат:
значения, присутствующие якобы с АЭ, принадлежат на самом деле АМЦ.
kostian
2017-01-12 11:44:12
COT1990
А откуда у вас сведения о работе МС аэродрома с 1941?

Так отсюда же! http://cliware.meteo.ru/goskom_cat/list/index.jsp Дата открытия станции: 01.05.1941.

мне так и не удается получить метеоданные

Не знаю, с чем у вас там трудности. Все заходят сюда и получают данные без проблем: http://aisori.meteo.ru/ClimateR
irsemi
2017-01-14 17:34:41
COT1990
http://meteo.ru/data
К сожалению, это единственный сайт (имеющий архив ВНИИГМИ-МЦД),
с которого мне так и не удается получить
метеоданные. Как неприступная крепость.


Войти не удается, или скачать архив с ftp?

Я посмотрел, там по станции 27459 Нижний Новгород есть сроки с 1966 по 2015, и суточные значения Т и осадков с 1881 по 2015.
irsemi
2017-01-14 17:34:53
COT1990
Скачать удалось только с третьей попытки, то сайт зависает, то скачивается не то что надо :)
Вам нужно?
Corvus
2017-01-14 20:33:05
irsemi
kostian


Вы не подскажете, где на упомянутых тут клим. сайтах данные по станциям СНГ?
А то мне только РФ попадается.
kostian
2017-01-14 21:39:52
Corvus

А СНГ на meteo.ru нету. Они теперь только по российским станциям архивы поддерживают.
Corvus
2017-01-14 21:46:24
kostian

Ну хотя бы до 199х года. Вы вроде говорили, что там есть ряды Т и осадков по СНГ. А может даже и срочные наблюдения.
kostian
2017-01-14 22:07:51
Corvus

Архивы по 223 климатическим станциям экс-СССР сейчас, похоже, только тут есть: http://seakc.meteoinfo.ru/actuals/9-catalogue-stat ions-international-exchange/3-223-daily-series
Corvus
2017-01-15 14:53:34
Архивы по 223 климатическим станциям экс-СССР сейчас, похоже, только тут есть
kostian

Спасибо. Но у меня отложилось, как Вы упоминали (где-то осенью) про новые архивы по СНГ. Может, речь шла про снежный покров?

Или же речь шла о Т и осадках по станциям СНГ вне этого списка.
Чтобы написать ответ в эту тему,
перейдите в полную версию Метеоклуба