Леонид, OR-параллелизм имеет большую практическую ценность. О нем было много речи в прошлую волну ИИ на основе Пролога и машин 5-го поколения.И в мире параллельных алгоритмов OR-параллелизм достаточно распространен.Например, параллельный метод ветвей и границ – это OR-параллелизм: параллельные ветви, на которых искомый результат будет заведомо хуже, чем уже достигнутый рекорд, отмирают (в литературе по ВиГ говорят "отсеиваются", "pruned"). Мы с Алексеем Адамовичем используем метод ВиГ как тестовую задачу на распараллеливание по разрабатываемой нами методике. Недавно мы опубликовали статью:
- А.И. Адамович, Анд.В. Климов. О детерминированной параллельной реализации метода ветвей и границ на монотонных объектах // Научный сервис в сети Интернет: труды XXI Всероссийской научной конференции (23-28 сентября 2019 г., г. Новороссийск). — М.: ИПМ им. М.В.Келдыша, 2019. — С. 3-18. — DOI: http://doi.org/10.20948/abrau-2019-61
- Презентация: https://keldysh.ru/abrau/2019/p/61.pdf
в которой привели реализацию ВиГ, у которой в коде верхнего уровня OR-параллелизм не виден, он записан как AND-параллелизм – как параллельные вызовы функций – естественно для функционального программирования. А "отсеивание" ненужных вызовов запрятано в объект, который хранит текущий найденный рекорд. Получилось изящно.А в Т-системе, насколько я представляю, OR-параллелизма не было. Или был где-то на периферии, что я о нем и не слышал. В своей основе она эксплуатировала функциональный AND-параллелизм.Андрей КлимовOn Mon, Mar 23, 2020 at 7:43 PM Eisymont Leonid verger-lk_AT_yandex.ru <refal@botik.ru> wrote:Аркадий, это сложновато и непонятна практическая ценность. Вот, в Т-системе накрутили, чем закончилось.Но надо иметь ввиду. Сейчас хорошо бы на чистом Рефале сосредоточиться, но довести до практического результата.Л.Эйсымонт23.03.2020, 17:38, "Arkady Klimov arkady.klimov_AT_gmail.com" <refal@botik.ru>:Я бы упомянул еще один вид параллелизма - ИЛИ-параллелизм. В строгом смысле в рефале места для него сейчас нет.Было бы, если бы кроме отождествления "слева" и "справа" добавить "любое" - подходит любой вариантдлины открытой е-переменной. Или если ввести "машинную операцию" типа <Map-Select tF eX> =применять tF к термам eX в любом порядке или параллельно, и если есть хотя бы один,где результат не неуспех, то его и выбрать (любой), иначе неуспех.Этот вид встречается в задачах типа поиска доказательств. Также в суперкомпиляции.Он не сводится к обычному И-параллелизму, поскольку в нем нужно убивать запущенные подпроцессы,чего в И-параллелизме не бывает.Аркадийпн, 23 мар. 2020 г. в 14:23, Александр Гусев gusev_aleksandr_AT_mail.ru <refal@botik.ru>:Ответил в личку
Понедельник, 23 марта 2020, 12:58 +03:00 от Eisymont Leonid verger-lk_AT_yandex.ru <refal@botik.ru>:
Александр, про уровни распараллеливания в Рефале известно с конца 70-х годов.Вы правильно это разложили в своих пунктах. Мы сейчас говорим о втором пункте. Первый пункт - это, наверное, будет решение на одномерном клеточном автомате. Оно также лежит с конца 70-х.Пункт 3 - в начале 2000-х ввели в Рефал через машинные операции работу с MPI. Эта реализация у нас есть. в середине прошлого десятилетия был небольшой опыт использования этого. Мы в Модуле эту реализацию даже поставили на один из серверов, но далее пока это направление не развиваем - много более неотложных дел, да еще этот короновирус добавился...Ваши рассуждения правильны, надо общаться. Как узнать подробнее о том, чем Вы занимались?Л.Эйсымонт23.03.2020, 12:29, "Александр Гусев gusev_aleksandr_AT_mail.ru" <refal@botik.ru>:Добрый день!Как я понимаю, параллелизм может быть нескольких видов:
- Распараллеливание внутри одной операции, например, поиска по большому массиву. Это может быть сделано вне языковой сущности Рефала — с помощью «железа» или СУБД;
- Распараллеливание на уровне ветвей при вычислении одного выражения, с учётом функций или без;
- Распараллеливание на уровне алгоритма — создание параллельных потоков, решающих по-сути разные задачи.
Пункт 1 работает хорошо и понятно, только не даёт глобального выигрыша, так как применим в ограниченном количестве случаев.Пункт 2 представляет наибольший интерес для автоматизации распараллеливания, только реализации реальной пока не видно, хотя серьёзные исследования были. Почему? Трудоёмко и эффективность непредсказуема. Для получения как-нибудь ясной картины я предлагаю опираться на статистику, которая должна вырабатываться на предварительно обрабатываемых наборах данных. В зависимости от решаемых задач эти наборы могут отличаться. Такого рода оптимизация уже делается в серверных решениях для СУБД. Называется «план запроса». На эту тему создано достаточное количество практических решений, позволяющих этим серверам работать в меняющихся и совсем разных условиях. Почему бы не применить эту технологию для Рефала? Требуется разработка, конечно.Пункт 3 тоже из области серверного мышления: нет необходимости всю большую задачу «забивать» в один поток. При наличии возможности межпотокового взаимодействия сложная задача обычно выигрывает от такого разбиения.Это я к чему: если принять Рефал — систему изначально параллельной, параллелизм выполнения придёт. Однако, для этого нужно начинать не с переделки популярных однопользовательских и однозадачных решений, а «с нуля». Тогда всё получится быстрее, чем за 20 лет.В связи с этим я готов выразить удивление, что мой проект по созданию как раз серверного решения не вызвал видимого интереса за прошедшие полгода с момента его обнародования. Даже не сам проект, поскольку меня в сообществе немногие и знают. Сама идея не находит ожидаемого отражения. Или я этого не вижу. А проект продвигается в меру моих возможностей. Не быстро, к сожалению. Но будущее как раз за такими решениями — серверными и обязательно тиражными, если уж оно есть. Тиражность фактически закончилась после завершения эпохи использования у нас «взрослых» компьютеров — БЭСМ-6 и серии ЕС ЭВМ.Воскресенье, 22 марта 2020, 12:03 +03:00 от Arkady Klimov arkady.klimov_AT_gmail.com <refal@botik.ru>:
Немного встряну про параллелизм.Имхо существенное ускорения получается там и тогда, когда единицы распараллеливания достаточно крупны (при том, что их достаточно много).Сегодня это не менее 10 мкс или 10 Кфлоп. Собственно, об этом упоминал Леонид (проблемы функций с малыми временами, накладные расходы).Поэтому что для чистого, что для грязного, все равно надо укрупнять шаги, 1мкс это мало.Но от компилятора этого ждать трудно. Придется получать эту инфу от программиста, ему-то виднее.Хотя какое-то рантайм-профилирование может быть полезным (но не по операторам отождествления-замены, а по функциям).А "умный" компилятор или рантайм пусть использует результаты. Кто-то пытался так делать?Аркадийсб, 21 мар. 2020 г. в 18:32, Eisymont Leonid verger-lk_AT_yandex.ru <refal@botik.ru>:Автоматическое распараллеливание с учетом побочного эффекта можно и оставить, но это не должно повредить основному, о чем я говорил для чистого рефала без побочного эффекта. Абзац в ответе по поводу автоматического распараллеливания в Вашем письме я не понял. Мы параллелили компиляцию (выполняемую компилятором на Рефале) на уровне операторов исходной программы, а исходная программа на фортрано-подобном языке.Статистику по основным затратам при выполнении разных рефал-программ делали. Затраты на открытые переменные - это миф. Я же пересылал Вам материалы, там есть расклад. Измерения были достаточно точные, поскольку выполнялись на микропрограммной реализации Рефала. Это была разработка ИПМ тех лет.Диссертации моей в электронном виде у меня нет, тогда еще этого не было. У меня только в оригинале. М.б. есть в сети, кто-то отсканировал.Дипломная работа Александра Фролова и статьи уже 2000-х годов у меня есть, но я ведь статьи и презентации пересылал. Надо повторить?Л.Эйсымонт21.03.2020, 18:03, "Александр Коновалов a.v.konovalov87_AT_mail.ru" <refal@botik.ru>:Добрый вечер, Леонид!
Текст диссертации, препринт и дипломная работа доступны в электронном виде? Я бы почитал.
«Оставьте затею с решением побочного эффекта на автомате.»
Имеем программу для обычного последовательного Рефала.
Если компилятор поддерживает распараллеливание на автомате, то для параллельного выполнения в идеале ничего делать не надо: оно само распараллелится. Чтобы обеспечить бо́льшую степень параллелизма, нужно в программу добавить больше независимых чистых вычислений. Например, если это компилятор, то можно сначала загрузить в память несколько исходных файлов, потом их всех в памяти откомпилировать в целевой код, потом (если не было ошибок) записать скомпилированный код в целевые файлы. Компиляция на втором этапе может быть полностью чистой, при этом отдельные исходники транслируются независимо. А значит, будут параллелиться. При этом программу по-прежнему можно будет откомпилировать и запустить на обычной последовательной реализации Рефала.
А если компилятор не поддерживает автоматическое распараллеливание? Что тогда делать?
«Рекомендую решать проблему распараллеливания только для чистого Рефала, там есть чем заняться для минимизации накладных расходов и по балансировке параллельных вычислений.»
Согласен, есть чем заняться. В имеющейся реализации балансировка очень примитивная с высокими накладными расходами.
«Ещё там есть проблема функций с малыми временами выполнения, их лучше последовательно выполнять, но для этого их надо уметь выявлять.»
Я вообще исходил из предположения, что все функции Рефала имеют малое время выполнения. Исходная последовательная версия Рефала-05 компилирует себя за 1,9 секунд, при этом делает 2 244 201 шаг. Т.е. 1 шаг занимает в среднем 0,85 микросекунд.
Но о том, что разные шаги выполняются разное относительное время, я не задумывался. Любопытно это проверить экспериментально. Можно предположить, что функции, в которых нет открытых e-переменных, повторных и копируемых e- и t-переменных, будут выполняться быстрее. Но это надо проверять. Подопытный Рефал-05 имеет классическую списковую реализацию.
Т.е. экспериментально любопытно проверить следующее: есть ли значимое отличие между функциями, которые выполняются «быстро», и функциями, которые выполняются «медленно». Есть ли вообще такой феномен, как «функция с малым временем выполнения».
С уважением,
Александр Коновалов
From: Eisymont Leonid verger-lk_AT_yandex.ru <refal@botik.ru>
Sent: Saturday, March 21, 2020 4:05 PM
To: refal@botik.ru; Alexander Frolov <fro...@nicevt.ru>
Subject: Re: Семинар по метавычислениям в понедельник 2 марта 2020 в ИПМ
Александр, по поводу первого доклада. Эти проблемы с побочными эффектами мы исследовали сорок лет назад. Элементы были включены в мою диссертацию, которую я защищал в ИПМ в мае 1983 года. Была "спешная" защита, поскольку я был включен в группу сотрудников ИПМ для работ по Бурану. И было ясно, что к этой тематике мне не вернуться. Еще был препринт ИПМ по распарараллеливанию одного модельного компилятора. Я с Андреем Валентиновичем эти исторические моменты уже вспоминал и обсуждал. Не понимаю, почему он Вам это не передал, либо передал?
Вы ломитесь в открытую дверь. Практический совет такой. Оставьте затею с решением побочного эффекта на автомате. Рекомендую решать проблему распараллеливания только для чистого Рефала, там есть чем заняться для минимизации накладных расходов и по балансировке параллельных вычислений. Еще там есть проблема функций с малыми временами выполнения, их лучше последовательно выполнять, но для этого их надо уметь выявлять. Это уже в компиляторе Рефала. При этом проблемы побочных эффектов решать через машинные операции. Это типа мониторов Хоара. Собственно говоря, именно так мы и решили сорок лет назад проблему распараллеливания компилятора, а там много было побочных эффектов. Это и было описано в упомянутых работах.
Чистый рефал распараллеливал в свое время Александр Фролов, это была его дипломная работа в МИФИ, лет 15 назад. Сейчас он начальник отдела в НИЦЭВТ-е, другими делами занимается, но интерес, как понимаю, сохранился. В то время не было таких возможностей аппаратуры и накладные расходы оказались большими. Сейчас - другое дело. Советую не терять напрасно время, поступайте именно так.
Успехов.
Л.Эйсымонт
21.03.2020, 14:25, "Александр Коновалов a.v.konovalov87_AT_mail.ru" <refal@botik.ru>:
Добрый день всем!
Я, прежде чем ответить, ждал презентацию от Станислава (мы договаривались, что он скинет её в рассылку), но он что-то не отсылал и я ответить на письмо забыл. Извините, что так долго.
Прозвучало два доклада. Первым был доклад Станислава про распараллеливание Рефала, вторым был доклад Максима Кривчикова про промежуточное представление Рефала и его использование для верификации.
Про первый доклад. Станислав рассказывал про свою курсовую работу по курсу «Операционные системы» на тему распараллеливания Рефала (научный руководитель — я). Про распараллеливание.
Из плюсов: предложен подход к параллельному вычислению функций в «грязном» языке программирования. Когда все функции чистые, проще — есть зависимости только по данным. А Рефал — «грязный» язык, в нём есть недетерминированные функции или функции с побочным эффектом (ввод, вывод, копилка). И нужен механизм, который (а) обеспечивал бы параллельные вычисления для чистых функций и (б) обеспечивал правильный порядок выполнения «грязных» функций.
Такой механизм предложен, ждём, когда Станислав скинет его в рассылку.
Из минусов: не распараллеливается. Красивого прироста производительности от большего числа потоков получить не удалось. Нам во время доклада подсказали, что надо было использовать work stealing для балансировки задач между потоками.
Про второй доклад. Максим разработал новый диалект Рефала и планирует его использовать для верификации типов в динамически типизированных языках при помощи прогонки (суперкомпиляции). Эту идею верификации я понял не до конца, другие идеи автора мне показались интересными. Доклад был незапланированным, поэтому прошёл без слайдов — в рассылку скидывать нечего.
Андрей Валентинович, второго докладчика Вы добавляли в рассылку?
С уважением,
Александр Коновалов
From: Eisymont Leonid verger-lk_AT_yandex.ru <refal@botik.ru>
Sent: Monday, March 2, 2020 2:33 PM
To: refal@botik.ru
Subject: Re: Семинар по метавычислениям в понедельник 2 марта 2020 в ИПМ
Андрей, очень хотел попасть на семинар, но сижу дома со статьей по ЭКБ для ИИ. Очень тяжело идет, а завтра надо бы отдать коллегам на анализ. Жду презентацию, вопросов у меня уже сейчас много, ведь мы этим занимались 15 лет назад, еще в НИЦЭВТ-е, тогда не пошло, а потом не до этого было. Сейчас интерес есть, даже Рреализацию на односвязных списках Рефала-2 на сервере Модуля установили, она с машинными операциями под MPI, да и вообще испытанная и самая практически продвинутая. Вручную распараллеливать можно, даже пробовали еще в НИЦЭВТ-е. Это в НИР Вектор с Квантом - 2004 год.
Успехов, завидую вашему участию в работе такого семинара.
Л.Эйсымонт
02.03.2020, 08:03, "Andrei Klimov andrei_AT_klimov.net" <refal@botik.ru>:
Александр, доброе утро!
Жаль, но что ж делать...
Если параллелизм нас так не затянет, что первый доклад с обсуждением займет намного больше времени, чем думали, то есть такие соображения для полезных рефал-обсуждений после него:
- Новый участник семинара Максим Кривчиков может дать у доски аннотацию его статьи, а мы обсудим:
·
- Vasenin, V.A., Krivchikov, M.A. Intermediate Representation of Programs with Type Specification Based on Pattern Matching. Program Comput Soft 46, 57–66 (2020). https://doi.org/10.1134/S0361768820010077
- Это журнал "Программирование", но файл статьи на русском дают только за деньги (или у автора), а у Шпрингера можно взять бесплатно из академических институтов и, наверно, из части университетов. (А есть способы и не только из институтов.:-))
- У меня есть затравочные вопросы по (отсутствующему, но потенциальному) месту Рефала в мире и его (гипотетическому) развитию в соответствующем направлении, которых на доклад недостаточно, но дискуссию могу разжечь. Вот этот доклад и статья доклад Сергея Романенко в ту же сторону, но есть что добавить:
·
- С.А. Романенко. Рефал и Агда как воплощения идеи “метаалгоритмического языка” // Научный сервис в сети Интернет: труды XIX Всероссийской научной конференции (18-23 сентября 2017 г., г. Новороссийск). — М.: ИПМ им. М.В.Келдыша, 2017. — С. 417-424 . — http://doi.org/10.20948/abrau-2017-63
- Файл статьи доступен по этой ссылке.
До встречи!
Всего наилучшего,
Андрей Климов
On Sun, Mar 1, 2020 at 6:13 PM 'Александр Коновалов' via Метавычисления и специализация программ <metacomputation...@googlegroups.com> wrote:
Добрый вечер всем!
Я не успеваю подготовить доклад к завтрашнему семинару, поэтому снимаю завтрашнее выступление.
Поэтому слушать завтра будем только доклад Станислава.
Но я думаю, что мы найдём достаточно тем для обсуждения и без моего выступления.
Простите, что так выходит.
С уважением,
Александр Коновалов
From: Andrei Klimov [mailto:and...@klimov.net]
Sent: Friday, February 28, 2020 2:04 PM
To: metacomputation-ru <metacomputation...@googlegroups.com>; refal@botik.ru
Subject: Семинар по метавычислениям в понедельник 2 марта 2020 в ИПМ
Добрый день всем!
В понедельник 2 марта 2020 в 15 часов соберемся в 416 комнате ИПМ им. М.В. Келдыша РАН на семинар, чтобы послушать два доклада, связанных с языком Рефал:
- Станислав Санталов (МГТУ им. Н.Э. Баумана)
Параллельное выполнение функций в Рефале-05Основная идея — рассмотреть возможность вычисления функций в Рефале-05 независимо, в различных потоках. Предлагается способ распределения нагрузки между потоками, сохранения порядка вычисления функций и доступа к глобальному полю зрения. Для реализации поставленных задач вводится новая сущность — а-терм, экземпляры которой организуются в дерево с атомарными счетчиками и специальный глобальный потокобезопасный безблокировочный список. Также создается несколько очередей а-термов: общая глобальная и по одной локальной для каждого потока. В конце приводятся результаты тестирования и анализ полученной схемы.
- Александр Коновалов (МГТУ им. Н.Э. Баумана)
Алгоритм вывода свёрточной формы для функций обработки строкПод свёрточной формой мы будем подразумевать представление функции, потребляющей некоторую структуру данных с помощью операции, знакомой функциональным программистам под именем foldr для лисповских списков, а в общем случае для типизированных языков типа ML и Haskell как катаморфизм этой структуры данных — термин из теории категорий. Для функций обработки строк (и выражений Рефала), где есть ассоциативная операция конкатенации, это будет катаморфизм для свободного моноида, который также можно рассматривать как гомоморфизм моноида конкатенации в некоторый другой моноид.
Под строками в докладе будут пониматься однородные последовательности произвольных значений, которые могут быть пустыми и для которых определены конкатенация и итерация с обеих сторон. Для сравнения: в лисповских списках определено добавление одного элемента в начало (cons) и итерация только слева-направо.
Представление функций, потребляющих строки, в свёрточной форме даёт некоторые преимущества:
- Появляется возможность выполнять слияние (fusion) с функциями, порождающими строки — в результирующей функции промежуточная строка даже не будет создаваться. Это вообще верно для любого катаморфизма и является основой сокращённой дефорестации (shortcut deforestation).
- Появляется возможность распараллеливать вычисление функции — строку можно разделить на части, свернуть независимо и результаты их свёрток скомбинировать в искомое значение. Это свойство верно только для свёрточной формы строковых функций.
- Можно менять направление обработки строк — из свёрточной формы можно получить функцию, читающую строку как слева-направо, так и справа-налево. Например, это позволяет преобразовать наивную функцию, вычисляющую значение многочлена, в схему Горнера.
На семинаре 29 октября 2019 года рассматривалась сокращённая дефорестация и способ её реализации для языка Рефал. На нём было введено понятие свёрточной формы для строковых функций в терминах Рефала и были рассмотрены некоторые примеры функций в этой форме. Способ построения свёрточной формы на том семинаре не давался.
В докладе 2 марта 2020 года мы определим свёрточную форму уже без использования терминологии Рефала, а также рассмотрим алгоритм перевода функций в свёрточную форму. Входом алгоритма будет функция, анализирующая строку по одному элементу слева-направо (или справа-налево), выходом будет свёрточная форма либо сообщение о том, что алгоритм не может её вывести.
Алгоритм применим для ограниченного класса функций, т.е. не для любой функции, представимой в свёрточной форме, эту форму можно вывести. Однако, этот класс достаточно широк, что будет продемонстрировано на нескольких примерах.
Вывод свёрточной формы использует ограниченную суперкомпиляцию на некоторых этапах своей работы. Ограниченность выражается в допустимых вариантах обобщения похожих конфигураций. Если в процессе требуется выполнить недопустимое обобщение, то или преобразуемая функция не представима в свёрточной форме, или она слишком сложна для этого алгоритма.
В отличие от доклада 29.10.2019 для понимания этого доклада знания Рефала не требуется.
Гости ИПМ, которым нужен разовый пропуск, напишите мне по email или пошлите смс-ку с ФИО и НОМЕРОМ ПАСПОРТА на моб. +7 985 364 3536 до 12 час в день семинара. Пропуск получите либо в бюро пропусков в окошке слева от вахтера в главной проходной ("стеклянной", со стороны Миусской площади), либо непосредственно у вахтера. Я вам сообщу, какой вид пропуска будет оформлен.
С ноутбуком, не зарегистрированным в списке на вахте на пронос в ИПМ, лучше не приходить, чтобы не споткнуться о ситуацию, когда не пропустят, а соответствующего начальства, чтобы подписать материальный пропуск на внос-вынос, не окажется на месте.
До встречи!
Андрей Климов--
Вы получили это сообщение, поскольку подписаны на группу "Метавычисления и специализация программ".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес metacomputation-ru+unsubscr...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/metacomputation-ru/CAM7HiMnG8AfcNM%2BUG3ufHWeKX_0qs-Mbx_nWp7Eq2DWMVP-tSw%40mail.gmail.com.
--
Вы получили это сообщение, поскольку подписаны на группу "Метавычисления и специализация программ".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес metacomputation-ru+unsubscr...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/metacomputation-ru/0af601d5efdc%240145e8a0%2403d1b9e0%24%40mail.ru.
Re: Семинар по метавычислениям в понедельник 2 марта 2020 в ИПМ
Eisymont Leonid verger-lk_AT_yandex . ru Mon, 23 Mar 2020 17:01:46 -0700
Андрей, спасибо за разъяснения, я понимаю, о чем ты говоришь. По поводу Т-системы я имел ввиду другое, там была сложная схема с "незавершенным отождествлением" и опережением действий над частью результата отождествления. М.б. что-то путаю, уже подзабыл. Колю Мансурова также на это соблазнили, я с ним спорил, но повлиять не смог, это было на этапе, когда он заканчивал диссертацию уже с Игорем Борисовичем. Все это хорошо, но сложно и непрактично. Простой рефал пока параллелить не научились ведь.
Кстати, в четверг долго с С.М.Соколовым в ИПМ беседовал, я коллег из Модуля привозил. Обозначились взаимные интересы по поводу того, чем вы с Сергеем сейчас для него занимаетесь. У Сергея какой-то отчет замечательный получился. Узнать бы поподробнее. Ну и чем мы занимаемся вашим интересно оказалось.
М.б. удастся еще вместе поработать.
Л.Эйсымонт
23.03.2020, 23:12, "Andrei Klimov andrei_AT_klimov.net" <refal@botik.ru>:
- Re:... Eisymont Leonid verger-lk_AT_yandex . ru
- Re:... Arkady Klimov arkady . klimov_AT_gmail . com
- Re:... Eisymont Leonid verger-lk_AT_yandex . ru
- Re:... Andrei Klimov andrei_AT_klimov . net
- Re[... Александр Гусев gusev_aleksandr_AT_mail . ru
- Re:... Eisymont Leonid verger-lk_AT_yandex . ru
- Re[... Александр Гусев gusev_aleksandr_AT_mail . ru
- Re:... Arkady Klimov arkady . klimov_AT_gmail . com
- Re:... Eisymont Leonid verger-lk_AT_yandex . ru
- Re:... Andrei Klimov andrei_AT_klimov . net
- Re:... Eisymont Leonid verger-lk_AT_yandex . ru
- Об ... Arkady Klimov arkady . klimov_AT_gmail . com
- RE:... Александр Коновалов a . v . konovalov87_AT_mail . ru