wasserstrahl's Journal
 
[Most Recent Entries] [Calendar View] [Friends]

Below are the 20 most recent journal entries recorded in wasserstrahl's LiveJournal:

    [ << Previous 20 ]
    Monday, September 20th, 2021
    12:26 pm
    OSDN

    Побывал на OSDN (конференции по свободному программному обеспечению в Киеве).

    Послушал доклады, посмотрел вживую на ребе Столлмана, повидался со старыми знакомыми.

    Интересно.

    Tuesday, June 8th, 2021
    4:59 pm
    Закрылся io.ua

    Почти случайно узнал, что перестал работать io.ua.

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

    Обычно в таких случаях говорят "прошла эпоха".

    Но я лучше напомню: "Святіть ножі..."(с) "Your internet data is rotting"(c). Храните важные данные у себя, делайте резервные копии, учитесь делать все сами, не доверяя благодетелям из интернетов, и будьте уже таки мне здоровы.

    Особенно в нынешнее время, когда все неудобное легко удалить, эпидемия упоротости лютует по планете, а ваше мнение "очень важно для нас"(с).

    Thursday, July 18th, 2019
    11:12 am
    Столлман, flatshare и хабролоровские снобы
    Забавно.

    В Санкт-Петербург на конфу собирается приехать Ричард Столлман. Ребе попросил организаторов не снимать ему гостиницу, а вписать его где-нибудь на флэту у аборигенов, они разместили призыв на Хабре и на ЛОРе.

    В комментах трэш. На хабре en masse считают ребе психом и обсуждают миграционное законодательство горф, на лоре -- бомжом и нищебродом. На лоре, Карл! Что в голове у этих людей и откуда оно берется?

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

    Он, между прочим, вполне элитные условия запросил, диван, желательно в отдельной комнате, без домашних животных, температура не выше определенной, кошерный интернет и отключение записывающих устройств. А то в реальности оно по-разному бывает...
    Monday, July 8th, 2019
    4:02 pm
    Пара слов о MobileID
    - Насколько ЭЦП будет защищенной?

    - Наша платформа и sim-карта, на которой цифровая подпись, прошли все проверки госорганами и все сертификации. Как и наш партнер. У нас работают специалисты по безопасности. Я думаю, взломать ее практически невозможно. Ехидная усмешка -- wasserstrahl

    - А вы не практиковали белый хакинг, когда кто-то специально взламывает вашу систему, чтобы найти уязвимости?

    - Я такого не помню, но идея хорошая. *facepalm* -- wasserstrahl

    - Расскажите, как у вас работают над новыми продуктами. Ими занимаются отдельные команды?

    - Да. Например, приложение My Vodafone создает команда, которая полностью работает по методологии scrum (это agile-подход, то есть гибкий подход к разработке ПО, - Ред.). Стильно, модно, молодежно!-- wasserstrahl. Мы взяли людей из Vodafone и из компании-партнера, который помогает разрабатывать это приложение, посадили их в отдельную комнату, дали все, что им нужно для работы.

    -- https://biz.liga.net/all/telekom/interview/facebook-ne-platit-kak-vodafone-otkryl-messendjery-v-roumnge

    Ясно, эти смузихлебымолодые-дефективные щас наразрабатывают... закапывайте.
    Friday, June 7th, 2019
    2:22 pm
    Mutt
    Похоже, таки окончательно переползаю на использование (neo)mutt для чтения почты с компа.

    Забавно, вообще, года два-три назад я бы сказал, что декстопные почтовые клиенты окончательно закапываются вебмэйлом, оставаясь только в узких нишах -- собственно, корпоративная почта (и то, империя добра и ей подобные там неплохо действуют), работа с PGP (грузить ключи шифрования в webmail технически вроде даже возможно, но нужно быть совсем уже идиотом) и автоматизированная отсылка сообщений.

    А тут внезапно пришло понимание, что webmail окончательно превратился в тот же самый почтовый клиент, только написанный на JavaScript, тяжелый как смертный грех и нестандартный (разный для каждого почтового сервера). Так нафига это счастье, если есть то же самое, только написанное на Си, и общающееся с любым сервером стандартным способом и одинаково отображающее почтовый ящик независимо от того, кто его предоставляет?

    Thunderbird раздулся, с остальными как-то не сложилось -- везде чего-то не хватает.

    Current Music: Nostra Morte -- La Rosa Enflorece
    Sunday, February 24th, 2019
    11:10 pm
    RSS + bayesian filter
    Не попадалась ли кому-нибудь работающая RSS-читалка с обучаемым фильтром "интересных" новостей? Ну, что-нибудь в стиле байесовского классификатора spam/ham, чтобы можно было залить в нее ряд подписок (в первую очередь интересуют научные журналы), обучить на некоторой выборке (отмечая интересными, ставя оценки или просто по факту перехода по ссылке), и получать потом ленту отобранных для меня статей.

    Вроде в Thunderbird такое было (в RSS умеет), но все плагины байесовских фильтров с текущей версией из Минта не работают.
    Friday, January 25th, 2019
    10:00 pm
    Jabber
    На фоне этого вашего кипиша з разными мессенжерами пришла светлая мысль, не пора ли откапывать старый добрый теплый ламповый XMPP/Jabber. И вообще, что стоит глянуть, что там с ним творится.

    А там все, в общем хорошо.

    Jabber вполне себе здравствует. Оброс новыми XEP'ами, адаптирующими протокол к современным реалиям, в частности:

    1. XEP-0198: Stream Management -- решение вопроса нестабильного (в т.ч. мобильного) интернета (подтверждения получения сообщения между клиентом и сервером плюс переустановление оборванного соединения);
    2. XEP-0313: Message Archive Management (и ряд более простых вариантов, реализующих неполный набор возможностей) -- архивирование истории на сервере плюс кошерная синхронизация между клиентами.
    3. XEP-0363: HTTP File Upload -- один из стандартов обмена файлами, вроде даже работает (как минимум, в цепочке поддерживающих клиента-сервера-сервера-клиента). Причем даже вместе с вышеупомянутым XEP-0313 -- т.е. фоточка прийдет на все устройства.
    4. Сквозное шифрования аж в трех видах:
      1. OpenPGP -- классика. Хороша всем, кроме невозможности включить одной кнопкой (таки немножечко надо подумать), а также отсутствием призрачной forward secrecy.
      2. OTR. Для реальных параноиков. Работает только между двумя клиентами, которые чатятся в онлайне (никаких отложенных доставок).
      3. OMEMO -- хит сезона. Адаптация протокола Signal (Axolotl). Попытка скрестить ужа с ежом. Всмысле -- и призрачная forward secrecy, и много устройств, и многопользовательский чатик, и отложенная доставка (когда адресат войдет в сеть) и т.д.

      Личное впечаление -- я, пожалуй, за классику. В реальной жизни отобрать устройство проще, чем компрометировать ключ, и в этом смысле тупая passphrase в OpenPGP может помочь гораздо лучше, чем все эти криптографические навороты. Однако, для чайника OMEMO существенно проще, т.к. включается одной кнопкой, не требует всей этой ручной генерации ключей, обмена, key signing party и прочих гиковских развлечений.

      С другой стороны, при подключении нескольких устройств подтверждать ключи нужно для каждого, и новому подключенному устройству не будут доступны старые сообщения (forward secrecy же). Т.е. допустим, при утере/краже/поломке старого телефона архив сообщений накроется (если не было параллельного аккаунта на другом устройстве), а собеседникам придется одобрить смену ключа.

      Кстати, стоило бы проверить еще раз, но я лично наблюдал случай, когда OMEMO-ключ на ведроидном клиенте восстановился после полного сброса телефона в заводские настройки. Если повторится, то нужно зарепортить, это явный misbehavior.


    Да, о клиентах. Из стационарных в плане поддержки всего вышеперечисленного наиболее продвинут Gajim.

    Pidgin не умеет в Message Archive Management (только в Message Carbons, и то, насколько я помню, плагином), да и... в остальное тоже (OMEMO и OpenPGP плагинами). Psi надо уточнять.

    Из мобильного -- Conversations. Если версия андроида слишком старая или сильно надо OTR -- есть отдельная ветка Conversations Legacy. В Google Play Conversations платный (Legacy -- нет), в F-Droid вроде нет. Пытаются предлагать свой Jabber-сервер по умолчанию, за который через некоторое время после подключения захотят денег, но без проблем можно подключить аккаунт в любом другом. Есть ряд клонов и прочих поделий. По совместительству один из двигателей современной экосистемы Jabber (OMEMO и HTTP file upload разрабатывали эти ребята).

    Есть еще, хех, Xabber. Упоминаю чисто ради равновесия эльфов и орков, почитайте при случае, что этот ватник пишет в ответ на просьбу реализовать OMEMO: https://github.com/redsolution/xabber-android/issues/540 . "Crypto-cancer", "drug dealers", и дальше по тексту.

    Сервера -- надо проверять. Я сижу на jabber.hot-chilli.net. Из пожаловаться -- иногда возникают странности с ключами SSL (ну или это был MITM, хех). Однако, потенциально ряд старых серверов может не уметь в новые возможности.

    Current Music: Lacrimosa -- Alleine zu Zweit
    Saturday, January 20th, 2018
    12:05 am
    Получить значение gpu_architecture
    Вопрос знатокам.

    Как определить корректное значение параметра gpu_architecture для компиляции кода с помощью nvcc для локальной видеокарты?

    Поиск пока результатов не дал. Зная модель видеокарты (в т.ч. получив ее через nvidia-smi), я могу найти ее в списке, и соотнести значения. Но м.б. есть варианты получше?

    Зачем надо. Надо для скрипта, собирающего CP2K с поддержкой CUDA, причем уже на целевом компьютере с максимально возможной заточкой под него.
    Wednesday, September 6th, 2017
    11:28 am
    Proxychains
    Проблема с lynx из предыдущего поста не давала мне покоя, и я таки нашел ее решение.

    Оказалось, что проблема не в lynx (точнее, единственная проблема с ним в том, что lynx не имеет встроенной поддержки SOCKS5 -- по крайней мере, та версия, которая идет в стандартной поставке -- и должен подвергаться соксификации внешними утилитами), а с torsocks -- это недостаточно продвинутый соксификатор для таких целей. Аналогичная проблема описана здесь для claws-mail: программа, подвергнутая соксификации, предсказуемо создает DNS-запрос, на который соксификатор отвечает фейковым IP, и потом перехватывает его. Проблема в том, что torsocks не создает полноценную таблицу перехватываемых фейковых IP на уровне системы в целом, и при попытке программы породить подпроцессы карета превращается в тыкву запрос подпроцесса по фейковому IP не перехватывается. А поскольку IP имеет вид 127.42.42.0, т.е. соответствует маске 127.0.0.0/8, то воспринимается как запрос к localhost, и отвергается torsocks. Не знаю, порождает ли lynx подпроцессы или механизм потери "печеньки" (torsocks называет эти фейковые IP как cookies) другой, но, судя по логам torsocks, суть проблемы примерно та же.

    В общем, нужен другой соксификатор. С dante-client почему-то не получилось, причины до конца не понял.

    Получилось с proxychains. Однако, не с той версией, которая в репозитории Mint (там старая, 3.1, разработка оригинальной ветки прекращена, и в ней тоже есть баг с разыменованием onion-адресов с изящным ответом на баг-репорт "I cannot forward it to the upstream right now since development is stopped in 2006 but in future the bug might be forwarded if there is new upstream"), а с реинкарнацией https://github.com/rofl0r/proxychains-ng

    Да, его пришлось качнуть с гитхаба и скомпилировать, что не так кошерно. Однако, поскольку lynx уже предполагает некоторую степень нердовства, а gophernicus нужно тоже ставить из исходников (хотя он умеет собираться как deb), в целом вариант можно признать рабочим. Если вдруг что, запилю PPA.

    Варианты с промежуточным прокси не работают. Точнее, работают только для http(s) -- privoxy и polipo (сдох) не имеют поддержки gopher, а squid (поддерживает gopher) не умеет в SOCKS.

    Скриншот, хе-хе )
    Monday, September 4th, 2017
    5:11 pm
    Underground
    У людей есть Tor, I2P, тифаретник, Jabber и еще куча всяких годных сервисов для свободы, децентрализованности, неподцензурности и неподконтрольности.

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

    В последнее время весьма зауважал возможность использовать Raspberry Pi как хостинг для onion-сайта. Или по-другому -- использовать Tor hidden services для обхода NAT и решения прочих вопросов с доменным именем, IP и т.д.

    SSH заработал. Поиграться с HTTP(S) можно, но интереснее дойти до последней черты и запустить вообще Gopher.

    Gophernicus скомпилился в виде пакета под Raspbian и работает. Вышло как-то так: gopher://tm2r262e22qiu6vc.onion

    Правда, достучаться до него через Lynx оказалось проблемой:
    torsocks lynx gopher://tm2r262e22qiu6vc.onion выдает ошибку "Connection to a local address are denied since it might be a TCP DNS query to a local DNS server. Rejecting it for safety reasons". Оказалось, что это касается не только gopher -- torsocks lynx b5tearqs4v4nvbup.onion работает, а torsocks lynx http://b5tearqs4v4nvbup.onion/ -- нет. У коробочного lynx SOCKS5 отключен, так что настроить по-честному не получается. OverbiteFF работает, если (пока что) забить на клиническое нежелание воспринимать содержимое как UTF-8.

    Интересно будет попробовать запилить на этом блог.
    Wednesday, August 9th, 2017
    11:26 pm
    EeePC
    По широко извесным в узких кругах причинам последнее время много сижу на стареньком нетбуке Asus EeePC на Intel Atom N270.

    ОС -- Linux Mint 18.1 Serena (32-битная, разумеется, 64 битных инструкций камушек не поддерживает в принципе), с графикой XFCE. Параллельно OEM-ная Windows XP, но это для особых случаев. Mint поставлен с учетом нюансов SSD-винта плюс аккуратно выпотрошен для повышения производительности (если кому интересно -- распишу подробности), но все равно немного подтормаживает. Иногда возникают идеи попробовать что-нибудь в духе Puppy (кто-нибудь пробовал?).

    Но это все лирика, прикол не в том. В общем, машинка прекрасно справляется с распаковкой и отображением видео H.264, но безумно тормозит на загрузке этого вашего фсбука и тому подобных сайтов с активным использованием динамической генерации содержимого. Sic transit gloria mundi, грузить говно из интернетика накладнее, чем выполнять алгоритмы обработки данных.

    Current Music: Therion -- The Rise of Sodom and Gomorrah
    Saturday, March 12th, 2016
    1:49 am
    Ліцензійні збочення
    Квантовохімічний софт, здається, очолює галерею маразматичних ліцензійних вимог до програмного забезпечення. І це навіть не беручи до уваги одну нецензурну програму на літеру Г, у порівнянні з якою продукти Micro$oft --- вільне ПЗ. З тими шакалами все зрозуміло. Але нині мова піде про софт, принципово безкоштовний, а часто і поширюваний у вигляді вихідних кодів.

    Отже, 4-е місце хітпараду --- вимагаємо вислати електронною поштою лист-звернення (або заповнити формочку), де розкажемо про себе ряд цікавих речей і пообіцяємо нічого не порушувати. Вони дивляться і за день-два висилають відповідь з паролем на скачування або на архів.

    3-є місце --- те ж саме, але адреса електронної пошти має належати академічній установі (ніяких вам gmail).

    2-е місце --- ліцензійну форму треба роздрукувати, підписати власноруч, зісканувати і надіслати електронкою.

    І, нарешті, переможець феєрії копірастів! Підписана ліцензійна угода має бути надіслана паперовою поштою (або факсом), із обов’язковим зазначенням електронки, на яку прийде відповідь.

    ...Тривало XXI століття в галузі високопродуктивних обчислень...

    GPL --- наше все!
    Friday, March 4th, 2016
    4:24 pm
    Про статистичний аналіз та "Великого Брата"
    Одна справа, коли Імперія Добра змішує в списку увертюру до Тангейзера та пісню гурту "Кровосток", але за стільки часу можна вже було і здогадатися, що підсовувати мені в рекомендаціях ватні ютуб-канали --- справа марна.
    Wednesday, February 17th, 2016
    12:39 am
    Тест Напіда-Раса для веб-дизайнерів
    Якщо основний функціонал сайту, що реалізує мету його існування, недоступний в оглядачі w3m (за умови, що це теоретично можливо), тест вважається непройденим.

    Тифаретник теж не проходить, до речі.
    Sunday, November 22nd, 2015
    4:52 pm
    А потом люди спрашивают, почему я не сижу в соцсеточках под настоящим именем
    Sunday, November 15th, 2015
    11:07 pm
    CP2K: erratum
    Пара уточнений по предыдущим постам.

    1. Во-первых, более тщательный анализ показал, что центрирование молекулы в ячейке необходимо только в частном случае вэйвлетного решателя уравнения Пуассона, в общем случае это необязательно, плотность на границе ячейки может быть ненулевой (получаются псевдо-периодические краевые условия --- короче, оно работает и без соотв. инструкции, давая на выходе ту же электронную энергию, что и после центрирования). Убирать из примера не стал, но добавил уточнение в пост.
    2. Провтыкал, что HTML воспринял инструкцию &cent как управляющую даже несмотря на тэг PRE, исправил.
    3. Оказалось, что я закрыл в жжшном посте с разбором полетов комментирование. Это случайность, я забыл его открыть после очередного исправления, это связано с нюансами экспорта с тифаретника на жж. Уже открыто.

    И да, есть ли у вас пожелания по выбору веселых молекул для следующих серий? VX? метамфетамин? TNT?)
    12:30 am
    CP2K: анализ результатов оптимизации LSD
    В продолжение к http://lj.rossia.org/users/wasserstrahl/453314.html



    Итак, что мы получили на выходе (файлы из моего расчета приведены по ссылке https://mega.nz/#F!oQJ00bjY!wAFcNt6f5eCJIKFJczFFDg )?

    1. "Протокол" расчета (output-файл) opt_LSD.out, содержащий информацию о ходе и результатах расчета.
    2. Файл opt_LSD-pos-1.xyz, содержащий траекторию изменения геометрии молекулы в процессе оптимизации.
    3. Несколько файлов *.restart --- это файлы "сохранения", позволяющие в случае прерывания выполнения программы перезапустить расчет не с начала, а с одного из последних достигнутых этапов.
    4. Соответствующие им файлы *.wfn --- это волновые функции, полученные в результате решения ССП, которые также могут быть прочитаны, проанализированы и использованы.
    5. Файл opt_LSD-BFGS.Hessian, содержащий приближение гессиана, полученное в ходе оптимизации геометрии с помощью алгоритма Бройдена-Флетчера-Гольдфарба-Шанно (BFGS), используемого в CP2K по умолчанию.

    Output-файл.



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

    Далее начинается процедура оптимизации геометрии:

     *******************************************************************************
     ***                     STARTING GEOMETRY OPTIMIZATION                      ***
     ***                                   BFGS                                  ***
     *******************************************************************************
    


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

    Техническая информация:
    --------------------------
     OPTIMIZATION STEP:      2
     --------------------------
    
     DISTRIBUTION OF THE NEIGHBOR LISTS
                  Total number of particle pairs:                               1194
                  Total number of matrix elements:                              7413
                  Average number of particle pairs:                             1194
                  Maximum number of particle pairs:                             1194
                  Average number of matrix element:                             7413
                  Maximum number of matrix elements:                            7413
    
     Number of electrons:                                                        126
     Number of occupied orbitals:                                                 63
     Number of molecular orbitals:                                                63
    
     Number of orbital functions:                                                121
     Number of independent orbital functions:                                    121
    
     Parameters for the always stable predictor-corrector (ASPC) method:
    
      ASPC order: 0
    
      B(1) =   2.000000
      B(2) =  -1.000000
    
     Extrapolation method: ASPC
    

    Итеративное решение ССП и его результаты:
     SCF WAVEFUNCTION OPTIMIZATION
    
      ----------------------------------- OT ---------------------------------------
      Minimizer      : CG                  : conjugate gradient
      Preconditioner : FULL_SINGLE_INVERSE : inversion of 
                                             H + eS - 2*(Sc)(c^T*H*c+const)(Sc)^T
      Precond_solver : DEFAULT
      Line search    : 2PNT                : 2 energies, one gradient
      stepsize       :    0.08000000                  energy_gap     :    0.08000000
      eps_taylor     :   0.10000E-15                  max_taylor     :             4
      ----------------------------------- OT ---------------------------------------
    
      Step     Update method      Time    Convergence         Total energy    Change
      ------------------------------------------------------------------------------
         1 OT CG       0.80E-01    0.6     0.00499787      -132.9638373426 -1.33E+02
         2 OT LS       0.25E+00    0.0                     -132.9766523882
         3 OT CG       0.25E+00    0.2     0.00248243      -132.9877867426 -2.39E-02
         4 OT LS       0.27E+00    0.2                     -132.9941400844
         5 OT CG       0.27E+00    0.2     0.00111336      -132.9941768872 -6.39E-03
         6 OT LS       0.25E+00    0.7                     -132.9953375248
         7 OT CG       0.25E+00    0.2     0.00057071      -132.9953490620 -1.17E-03
         8 OT LS       0.26E+00    0.1                     -132.9956695813
         9 OT CG       0.26E+00    0.2     0.00029537      -132.9956701023 -3.21E-04
        10 OT LS       0.22E+00    0.2                     -132.9957389738
        11 OT CG       0.22E+00    0.2     0.00013662      -132.9957418191 -7.17E-05
        12 OT LS       0.23E+00    0.2                     -132.9957580814
        13 OT CG       0.23E+00    0.2     0.00006623      -132.9957581399 -1.63E-05
        14 OT LS       0.24E+00    0.1                     -132.9957620855
        15 OT CG       0.24E+00    0.2     0.00003683      -132.9957620888 -3.95E-06
        16 OT LS       0.31E+00    0.2                     -132.9957635908
        17 OT CG       0.31E+00    0.2     0.00002360      -132.9957636744 -1.59E-06
        18 OT LS       0.31E+00    0.1                     -132.9957643309
        19 OT CG       0.31E+00    0.2     0.00001652      -132.9957643309 -6.57E-07
        20 OT LS       0.28E+00    0.2                     -132.9957646181
        21 OT CG       0.28E+00    0.2     0.00001146      -132.9957646215 -2.91E-07
        22 OT LS       0.29E+00    0.2                     -132.9957647646
        23 OT CG       0.29E+00    0.3     0.00000792      -132.9957647647 -1.43E-07
    
      *** SCF run converged in    23 steps ***
    
      Core-core repulsion energy [eV]:                          27310.25943600658138
      Core Hamiltonian energy [eV]:                             -5778.36888981168067
      Two-electron integral energy [eV]:                       -50301.77870500837162
      Electronic energy [eV]:                                  -30929.25824231586739
    
      Total energy [eV]:                                        -3618.99880630928556
    
      Atomic reference energy [eV]:                              3619.16398738078260
      Heat of formation [kcal/mol]:                                 3.80916630197567
    
      outer SCF iter =    1 RMS gradient =   0.79E-05 energy =       -132.9957647647
      outer SCF loop converged in   1 iterations or   23 steps
    


    Далее следует анализ распределения зарядов по Малликену (сами посмотрите), после него --- суммарная информация по шагу и сравнение результатов с допусками. Этап расчета градиента при таких настройках вывода не озвучивается.

     ENERGY| Total FORCE_EVAL ( QS ) energy (a.u.):             -132.995764830868666
    
    
     --------  Informations at step =     2 ------------
      Optimization Method        =                 BFGS
      Total Energy               =      -132.9957648309
      Real energy change         =        -0.0030547509
      Predicted change in energy =        -0.0061894953
      Scaling factor             =         0.0000000000
      Step size                  =         0.1108009430
      Trust radius               =         0.4724315332
      Decrease in energy         =                  YES
      Used time                  =                5.079
    
      Convergence check :
      Max. step size             =         0.1108009430
      Conv. limit for step size  =         0.0030000000
      Convergence in step size   =                   NO
      RMS step size              =         0.0230440603
      Conv. limit for RMS step   =         0.0015000000
      Convergence in RMS step    =                   NO
      Max. gradient              =         0.0102268176
      Conv. limit for gradients  =         0.0004500000
      Conv. for gradients        =                   NO
      RMS gradient               =         0.0033158036
      Conv. limit for RMS grad.  =         0.0003000000
      Conv. for gradients        =                   NO
     ---------------------------------------------------
    


    Поскольку критерии сходимости не достигнуты, начинается следующий шаг.

    После достижения критериев выполняется еще один процесс решения ССП в равновесной точке, выводит финальную электронную энергию:

     ENERGY| Total FORCE_EVAL ( QS ) energy (a.u.):             -132.999805724373459
    


    После чего выводит статистическую информацию, подборку ссылок на статьи по методам, использованным в расчете (важно и удобно!) и завершается.

    Траектория изменения геометрии.


    Файл opt_LSD-pos-1.xyz состоит из набора XYZ-файлов (слепленных в один), каждый из которых описывает геометрию на соответсвующем шаге оптимизации. Этот файл можно просмотреть в текстовом редакторе (и, например, скопировать из него последнюю --- равновесную --- геометрию), а также можно открыть в Avogadro и анимировать движение к равновесию: для этого нужно выполнить avogadro opt_LSD-pos-1.xyz, после чего выбрать Меню --- Расширения --- Анимация и в появившемся окошке открыть тот же файл еще раз. После чего можно автоматически (работает не везде) или вручную ползунком анимировать изменение геометрии в процессе оптимизации. Можно также сохранить это как видео, только нужно установить на систему пакеты povray и mencoder. Пример видео приведен в каталоге с файлами расчета.
    Saturday, November 14th, 2015
    3:15 pm
    CP2K: первый пример. Полуэмпирическая оптимизация молекулы LSD
    Итак, начнем разбирать примеры с простого и приятного -- полуэмпирики. Почему именно с архаичного и забытого многими метода? Прежде всего потому, что для запуска рабочего примера нам понадобится настроить минимальное количество опций, т.к. многие из них определяются методом. Соответственно, меньше теории перед тем, как запустить реальное вычисление и посмотреть на его работу.

    Все файлы я выкладываю на облачное хранилище MEGA, они будут доступны по ссылкам в постах. Если удобнее куда-то в другое место --- напишите.

    В частности, файлы для данного расчета лежат здесь: https://mega.nz/#F!oQJ00bjY!wAFcNt6f5eCJIKFJczFFDg

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

    Конфигурационный файл CP2K состоит из секций (вкладываемых друг в друга) и параметров. Начало секции объявляется амперсандром & с названием секции, завершение -- амперсандом со словом end и необязательным названием секции, например:
    &global

    &end global

    Или:
    &global

    &end


    Несмотря на то, что название секции после &end необязательно, его лучше указывать, чтобы не запутаться.

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

    &global
    print_level medium
    &end global


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

    Набор возможных настроек обширный, но настраивать, разумеется, нужно не все. Большинство параметров имеют относительно разумные значения по умолчанию. Таким образом, мы изменяем параметры там, где:
    --- Мы непосредственно хотим поменять поведение программы;
    --- Где значения по умолчанию нас не устраивают;
    --- Где значения по умолчанию не совместимы с другими настройками расчета, которые нам нужны (к сожалению, CP2K не умеет менять одни параметры в зависимости от значений других).

    Обычно для учебных расчетов пользователи CP2K почему-то предпочитают кластеры воды, но оставим это уныние и попробуем оптимизировать что-то повеселее --- например, молекулу LSD-25.

    Для получения начальных координат молекулы воспользуемся свободной программой-редактором Avogadro, которую можно скачать с официального сайта или установить из репозитория. В Avogadro нужно нарисовать молекулу по структурной формуле, после чего оптимизировать ее геометрию молекулярной механикой (Меню -- Расширения -- Оптимизировать геометрические параметры, повторять пока молекула не перестанет изменяться), результат сохранить в файл в формате XYZ (*.xyz) (в каталоге с файлами расчета результат сохранен как LSD_mm.xyz).

    Ниже привожу комментированный файл конфигурации (input-файл). Звездочки означают пояснения после текста файла.

    Конфиг и пояснения )
    12:13 am
    CP2K: квантовая химия "для кающихся грешников"(с)
    Разгребаюсь потихоньку с CP2K.

    Совершенно примечательная программа для квантовохимических расчетов. Свободная и бесплатная, от перечня возможностей начинается бурное слюноотделение, но уровень документирования... просто катастрофически ужасен. Есть reference manual с кратким описанием параметров, есть набор собственных тестов, несколько туториалов и упражнений по отдельным вопросам, плюс гугл-группа (весьма живая). Влазить в этот трэш без предварительного опыта с какой-нибудь более вменяемой программой настоятельно не рекомендуется.

    Ну а я попробую изобразить небольшую серию постов с примерами и объяснениями, по мотивам и итогам, может кому поможет.

    Итак, для начала о том, как поставить это себе на комп. В Debian и особо мною любимом LMDE делается, как и полагается, линейно через apt-get install cp2k (cp2k есть в стандартном репозитории Debian).

    Однако, если нужна более свежая версия (в том числе экспериментальная), а также если хочется использовать CUDA (да, cp2k это умеет), то нужно ставиться из исходников.

    В системе нужно поставить следующие пакеты: subversion gfortran gcc make libopenblas-dev libfftw3-dev libint-dev libxc-dev g++ (названия указаны для пакетной базы Debian, все присутствуют в репозитории. UPD 16.01.2016: добавил g++). Для CUDA нужен также nvidia-cuda-toolkit. На самом деле часть этих пакетов опциональна, кроме того, можно использовать еще некоторые дополнительные библиотеки, которых нет в репозитории --- я перечислил все, что можно выжать из обычного репозитория Debian.

    Отдельное замечание о libopenblas-dev: при установке этот пакет через механизм update-alternatives изменяет конфигурацию системы таким образом, чтобы функции динамически подключаемой библиотеки BLAS на системе выполняла именно OpenBLAS. Если вы устанавливали OpenBLAS ранее или пользуетесь другими библиотеками --- трахайтесь с компиляцией самивнимательно настройте параметры под себя.

    Инструкции по получению исходников приведены на оф.сайте: http://www.cp2k.org/download Для получения текущей экспериментальной версии нужно выполнить команду svn checkout http://svn.code.sf.net/p/cp2k/code/trunk cp2k

    Настройка параметров компиляции производится с помощью файлов в подкаталоге cp2k/cp2k/arch полученного дерева исходников. Название файла в этом каталоге соответствует представляемой им "платформе" --- важнейшим параметрам системы: ОС, компилятор, набор инструкций процессора, а также способ параллелизации. CP2K поддерживает параллельность через MPI и через OpenMP, а также через комбинацию двух этих вариантов. По опыту работы на однопроцессорных многоядерных системах --- OpenMP в CP2K работает быстрее и [естественно] жрет меньше памяти, чем MPI. Потому править будем файл Linux-x86-64-gfortran.ssmp.

    Мой конфиг, удачно прошедший компиляцию, выглядит так:

    Без CUDA:


    CC = gcc
    CPP =
    FC = gfortran
    LD = gfortran
    AR = ar -r
    OPENBLAS_INC = /usr/include/openblas
    OPENBLAS_LIB = /usr/lib
    GCC_DIR=
    FFTW_INC = /usr/include
    FFTW_LIB = /usr/lib/x86_64-linux-gnu
    LIBINT_INC = /usr/include/libint
    LIBINT_LIB = /usr/lib
    DFLAGS = -D__FFTW3 -D__LIBINT\
    -D__LIBINT_MAX_AM=7 -D__LIBDERIV_MAX_AM1=6 -D__MAX_CONTR=4
    #-D__PW_CUDA
    CPPFLAGS =
    FCFLAGS = $(DFLAGS) -O2 -ffast-math -ffree-form -ffree-line-length-none\
    -fopenmp -ftree-vectorize -funroll-loops\
    -mtune=native\
    -I$(OPENBLAS_INC) -I$(FFTW_INC) -I$(LIBINT_INC)
    LDFLAGS = $(FCFLAGS) -static-libgfortran
    LIBS = $(OPENBLAS_LIB)/libopenblas.a\
    $(FFTW_LIB)/libfftw3.a\
    $(FFTW_LIB)/libfftw3_threads.a\
    $(LIBINT_LIB)/libderiv.a\
    $(LIBINT_LIB)/libint.a


    С CUDA:

    CC = gcc
    CPP =
    FC = gfortran
    LD = gfortran
    AR = ar -r
    OPENBLAS_INC = /usr/include/openblas
    OPENBLAS_LIB = /usr/lib
    GCC_DIR=
    FFTW_INC = /usr/include
    FFTW_LIB = /usr/lib/x86_64-linux-gnu
    LIBINT_INC = /usr/include/libint
    LIBINT_LIB = /usr/lib
    DFLAGS = -D__FFTW3 -D__LIBINT\
    -D__LIBINT_MAX_AM=7 -D__LIBDERIV_MAX_AM1=6 -D__MAX_CONTR=4
    CPPFLAGS =
    FCFLAGS = $(DFLAGS) -O2 -ffast-math -ffree-form -ffree-line-length-none\
    -fopenmp -ftree-vectorize -funroll-loops\
    -mtune=native\
    -I$(OPENBLAS_INC) -I$(FFTW_INC) -I$(LIBINT_INC)
    LDFLAGS = $(FCFLAGS) -static-libgfortran
    LIBS = $(OPENBLAS_LIB)/libopenblas.a\
    $(FFTW_LIB)/libfftw3.a\
    $(FFTW_LIB)/libfftw3_threads.a\
    $(LIBINT_LIB)/libderiv.a\
    $(LIBINT_LIB)/libint.a

    NVCC = /usr/bin/nvcc
    DFLAGS += -D__ACC -D__DBCSR_ACC -D__PW_CUDA
    NVFLAGS = $(DFLAGS) --gpu-architecture=compute_30
    CUDAPATH = /usr/lib/x86_64-linux-gnu
    LIBS += -L$(CUDAPATH) -lcudart -lcublas -lcufft -lrt



    Особо обращаю внимание, что $NVFLAGS обязательно должны содержать $(DFLAGS) --- инструкции по сборке этого не упоминают, но без этого компиляция не удастся.

    Поместив нужный файл в подкаталог cp2k/cp2k/arch, переходим в подкаталог cp2k/cp2k/makefiles и выполняем make ARCH=Linux-x86-64-gfortran VERSION=ssmp

    Если используете версию с CUDA, я бы рекомендовал отдельно собрать версию без CUDA, и держать рядом на всякий случай. Например, на карте с 1 Гб видеопамяти CP2K периодически ругается на невозможность выделить видеопамять и вылетает, приходится запускать без GPU. Названия версий стандартные, но принципиально не ограничены --- скажем, для конфигурации без CUDA можно создать конфигурационный файл Linux-x86-64-gfortran.ssmpnc (nc всмысле no-CUDA) или как-то так.

    Результат компиляции будет в подкаталоге cp2k/cp2k/exe, там будет ряд файлов, реально нужен только cp2k.ssmp (ну и cp2k.ssmpnc), который можно копировать куда угодно и использовать.

    Отдельное замечание об очистке каталога при неудачной сборке. Авторы наделали много разных опций для очистки, до конца там не совсем понятно, что следует использовать в каких случаях, я использую make clean ; make veryclean ; make realclean ; make distclean --- упорото, но вроде работает.
    Monday, September 14th, 2015
    8:29 pm
    Float и Double
    "В феврале 1991 года американские военные оказались жертвами неправильного округления в противоракетной системе «Пэтриот», использовавшей 24-битный регистр. Она ошиблась по времени всего на 0,34 секунды и упустила иракскую ракету, пролетевшую за это время 500 метров. От прямого попадания в казарму погибли 28 человек и ещё около 100 получили ранения".


    http://yodnews.ru/2015/09/06/compfail

    UPD:

    Более подробное описание -- по наводке [info]cyaness@lj: http://www.ima.umn.edu/~arnold//disasters/patriot.html

    Таки да, там не ошибка округления, а накопление погрешности.
[ << Previous 20 ]
About LJ.Rossia.org