Member
Статус: Не в сети Регистрация: 24.10.2002 Откуда: Петербург
FAH log converter
Программа - конвертер логов из формата фах-клиента 7 версии в формат 6, понятный FahSpy (ради чего все и затевалось) и, вероятно, другим мониторам.
Текущая версия: 0.3.8(скачать с оверов) | (скачать с файлообменника) Список изменений: + исправлено определение времени получения задания (не учитывались часовые пояса) + исправлены ошибки расчета дедлайна + исправлены ошибки определения номера проекта + добавлены имя юзера и номер команды в v6-лог (раньше не было) + добавлено определение типа клиента (GPU / CPU) + добавлена подсветка ошибок в логе + немного поменял формат лога конвертера + работает с verbosity=5 (вроде бы :D)
#77
Возможности: * Преобразует лог 7 клиента в формат 6 клиента. Логи пишутся в каталог _logs_v6 в рабочей папке клиента. * Поддержка многоклиентских конфигураций. Для каждого folding slot'a создается свой каталог (например FS01 или FS02) с комплектом необходимых файлов (FAHlog.txt + unitinfo.txt). Тестировалось максимум на трех слотах: 1 SMP + 2 GPU, но должно работать и с большим количеством. * Обеспечивает вычисление FahSpy'ем ППД для gpu2 заданий, что 7 клиент не может сделать самостоятельно .
Настройка программы В прошлых версиях возникали сложности с настройкой конвертера, и я кардинально решил эту проблему. Теперь настроек нет вообще :) Программа автоматически находит работающий F@H-клиент, FahSpy (должен быть запущен) и psummary (по-прежнему используется фахспай'ный). Конвертированные логи пишутся в каталог _logs_v6 в рабочей папке клиента (то есть рядом с логом 7 версии) - все пути указаны в таблице. Вам остается настроить на них FahSpy.
Особенности работы 1. При старте конвертера должен быть запущен FahSpy, чтобы программа нашла и распарсила psummary.html (список проектов) 2. Psummary читается только один раз - при запуске конвертера. Если в процессе работы FahSpy скачает новый, нужно перезапустить FLC, чтобы подхватились изменения. 3. На конвертированные логи FLC ставит блокировку, как фолдинг-клиент, чтобы FahSpy считал их работающими. Раз в минуту блокировка снимается, чтобы записать в лог новую информацию. Это регулярно замечает FahSpy и сообщает об остановке клиента, поэтому я отключаю в FahSpy эти уведомления (Настройки > События и автоматизация > Реакция на события). В будущем этот момент я переделаю, блокировка будет постоянной от старта программы до окончания работы клиента. 4. Для экономии процессорного времени обрабатывается не весь лог, а только часть с текущими заданиями. 5. В переходные моменты (начало или конец счета, а так же загрузка нового задания) FahSpy может неправильно определять само задание (номер проекта) и, соответственно, ППД. 6. В unintinfo.txt прогресс всегда равен 0%. Это нормально, т.к. для вычисления ППД FahSpy использует текст FAHlog.txt, а прогресс из unintinfo смысловой нагрузки не несет, поэтому конвертер его не обрабатывает.
Баги Я не программист, и хотя я постарался решить все проблемные ситуации, наверняка какие-то ошибки остались. Но программа работает и свою функцию выполняет, а это главное :) FLC тестировался в системах W7 и WXP, и только в клиенте версии 7.3.6 со стандартным значением verbosity.
Вложения:
Комментарий к файлу: FahLogConverter v.0.3.8 FahLogC.zip [361.53 КБ]
Скачиваний: 449
Последний раз редактировалось Biker 14.05.2013 8:57, всего редактировалось 6 раз(а).
Member
Статус: Не в сети Регистрация: 24.10.2002 Откуда: Петербург
опробовал два клиента (smp+gpu) в одном логе. понятно, что в логе исходно мешанина, но, оказалось, это нисколько не мешает. конвертер чудесным (ибо я о двух и более клиентах даже и не думал, когда его писал) образом поочередно обрабатывает тот и другой. чья запись была последней в логе, по тому клиенту логи и будет преобразованы в формат v6. и FahSpy правильно, хотя и по очереди, показывает инфу и ппд
Fergity писал(а):
Попробуй назначить своей программе права отладчика (debugger).
Member
Статус: Не в сети Регистрация: 25.12.2007 Откуда: Красноярск
Biker, в visual c++ права отладчика можно задать в свойствах проекта. В общем случае можно, как описано здесь (строка "Листинг функции, дающей привилегии отладчика нашей программе") На знаю, насколько это будет полезно.. Также надо обращать внимание на то, как ты получаешь доступ к файлам. В терминах WinAPI это будут флаги режима совместного доступа FILE_SHARE_READ и FILE_SHARE_WRITE. Кроме того после завершения операций чтения/записи желательно сразу "отключаться" от файлов (ф-я CloseHandle в WinAPI)
_________________ Доктор едет-едет сквозь снежную равнину, Порошок целебный людям он везет.
Member
Статус: Не в сети Регистрация: 24.10.2002 Откуда: Петербург
Fergity я только Delphi умею, к сожалению
Fergity писал(а):
Также надо обращать внимание на то, как ты получаешь доступ к файлам. В терминах WinAPI это будут флаги режима совместного доступа FILE_SHARE_READ и FILE_SHARE_WRITE. Кроме того после завершения операций чтения/записи желательно сразу "отключаться" от файлов (ф-я CloseHandle в WinAPI)
а правильно не получится, потому что я специально постоянно держу файл заблокированным на запись для имитации работы фах-клиента. и отпускаю только когда вношу изменения. вот сейчас написал и понял насколько бредово звучит, но блокировку удобно делать filestream'ом, а fahlog я формирую и пишу другим способом
Добавлено спустя 4 минуты 38 секунд: поток я честно освобождаю перед записью, но раз в неделю файл освобождается с небольшим опозданием, когда я уже пытаюсь туда писать. теперь там есть проверка на занятость и ожидание, пока он не освободится.
Member
Статус: Не в сети Регистрация: 25.12.2007 Откуда: Красноярск
Biker писал(а):
специально постоянно держу файл заблокированным на запись для имитации работы фах-клиента
Не уверен, что это необходимо. Когда фахспай читает логи через сеть, он не может определить, открыты ли файлы каком-либо процессом. Именно поэтому неосторожно убитый на удаленном компьютере клиент отображается в фахспае как работающий (в логе последней строкой остается [09:05:33] Completed 435000 out of 500000 steps (87%))
Хотя о чём я говорю? Я даже твою программу не скачивал, а уж исходников тем более не видел
_________________ Доктор едет-едет сквозь снежную равнину, Порошок целебный людям он везет.
Member
Статус: Не в сети Регистрация: 24.10.2002 Откуда: Петербург
Sir_N_Drew программа для 7 версии фах-клиента, а он имеет в составе и консоль, и графическую оболочку. пусть скриншот в первом сообщении никого не смущает
Member
Статус: Не в сети Регистрация: 24.10.2002 Откуда: Петербург
Sir_N_Drew порядок примерно такой: 1. ставишь FahSpy куда хочешь. этот путь назовем %FahSpy_path%. запускаешь FahSpy, обновляешь базы, FahSpy качает psummary.html, сохраняет его в %FahSpy_path%\Data\ 2. ставишь FAH log converter куда хочешь 3. запускаешь FAH log converter. видишь ругань на ненайденные файлы. 4. настраиваешь путь к psummary: правой кнопкой на список клиентов > Settings. указываешь путь к psummary.html, сохраняешь. 5. настраиваешь путь к логу фах-клиента: правой кнопкой на список клиентов > Edit. в source указать путь к логу 7 клиента, в target можно туда же. галочки v7 log и convert должны стоять. 6. выключаешь FAH log converter. 7. запускаешь FAH log converter, и вот уже теперь он должен заработать
или все то же самое прописать руками в log_conv.ini перед первым запуском FAH log converter, тогда заработает сразу
8. в FahSpy добавляешь клиента, указываешь ему путь к логу, который target в FAH log converter
Member
Статус: Не в сети Регистрация: 24.10.2002 Откуда: Петербург
дедлайн, совпадающий с временем получения задания - признак либо отсутствующего psummary (жаль, на скрине правой части окна с таблицей psummary не видно), либо отсутствия проекта в psummary у докторов (тоже бывает, но реже), либо моего косяка (в этом месте ошибок пока не видел )
Добавлено спустя 7 минут 54 секунды: и спасибо за отзыв! если бы еще остальные десять скачавших fah log converter тоже написали работает/не работает, было б вообще здорово
Member
Статус: Не в сети Регистрация: 04.12.2011 Откуда: Санкт-Петербург Фото: 6
Biker спасибо за подробную инструкцию (неплохо бы в шапку поднять), но я решил пока ничего не ставить - пусть работает и логи пишет. В крайнем случае руками посчитаю.
Member
Статус: Не в сети Регистрация: 28.08.2006 Откуда: Рязань
Biker Э, хотел показать правую часть окна, кстати оно не расширяется, чтобы полностью показать, программа что то для меня неизвестное рапортует. FahSpy рапортует, якобы остановлен клиент и дедлайн просрочен, вернее старые показатели. #77
Member
Статус: Не в сети Регистрация: 24.10.2002 Откуда: Петербург
Куба писал(а):
Э, хотел показать правую часть окна, кстати оно не расширяется, чтобы полностью показать
кнопка "psummary <" по замыслу должна скрывать таблицу и обратно показывать. при старте программы таблица развернута. работает, нет?
Куба писал(а):
программа что то для меня неизвестное рапортует.
говорит, что 11.00 не число, т.к. у тебя в системе десятичный разделитель - запятая, в таблице у докторов - точка, а моя программа самостоятельно разбираться с этим не обучена, см. Особенности работы, п.2:
Biker писал(а):
2. если в региональных настройках десятичный разделитель не точка, будет ошибка при парсинге psummary.html
отсюда и невозможность сформировать правильный unitinfo.txt
Куба писал(а):
FahSpy рапортует, якобы остановлен клиент
я буквально на долю секунды снимаю блокировку, чтобы перезаписать FAHlog.txt, а FahSpy это уже просек и решил, что клиент выкл. тоже надо как-то переделать, чтобы не анноил ежеминутными сообщениями.
Добавлено спустя 19 минут 27 секунд:
Sir_N_Drew писал(а):
А нельзя конвертер в новую версию ФахСпая запихать?
не надо портить хорошую программу такими костылями лучше, чтобы FahSpy нативно поддерживал логи 7 клиента. автора уже просили. в личной беседе он говорил, что заинтересованности в доработке нет.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 61
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения