Folding@Home, Про проект та ПЗ Folding@Home, Опис проектів, Distributed Computing team of
Наша команда: №2164
| » Навігація |
Про проект та ПЗ Folding@Home
Folding@Home: Інформація для тих, хто хоче приєднатися
Для всіх кому небайдужий розвиток науки в галузі боротьби зі смертельними хворобами вже шість років існує проект розподілених обчислень під назвою Folding@Home: http://en.wikipedia.org/wiki/Folding@home. Дослідження проводяться під егідою Стенфордського університету.
Суть проекту полягає в моделюванні згортання білків з метою виявлення можливих проблем згортання, які призводять до хвороб Альцгеймера, Паркінсона, діабету типу II, коров'ячого сказу, склерозу та деяких типів раку. Глибоке розуміння цих процесів допоможе з'ясувати точну картину виникнення захворювань та розробити методи протидії. Подібно до інших відомих проектів (Find-a-Drug, distributed.net, SETI@Home тощо), у Folding@Home беруть участь користувачі персональних комп'ютерів. Облік невеликих порцій-завдань відбувається у фоновому режимі з мінімальним пріоритетом, тому не заважає нормальній роботі за комп'ютером. Наразі у проекті налічується понад 200 тисяч активних учасників, які використовують обчислювальні потужності своїх комп'ютерів для виконання завдань, кожне з яких відтворює невелику частину загальної картини згортання білків. Інтернет потрібен лише для отримання завдань та надсилання результатів. Типові завдання мають розмір близько 100 Кб, а результати – до1-3 Мб на один блок. При цьому на обчислення одного блоку йде від 2 до 10 робочих днів. Ведеться статистика для кожного учасника. Крім того, учасники можуть об'єднуватися в команди країнами, містами або спільними інтересами. Для цього в конфігурації необхідно вказати номер команди (team), наприклад2164, якщо ви хочете рахувати за командуUkraine :) Наша команда зараз займає високе місце у загальнокомандному заліку: офіційна статистика або розширена статистика.
Хтось запитає:Навіщо задіяти сотні тисяч комп'ютерів, якщо можна скористатися одним суперкомп'ютером та отримати необхідний результат значно швидше?
Сучасні суперкомп'ютери складаються із сотень чи тисяч процесорів. Іноді ця кількість досягає 10 тисяч процесорів (які окремо взяті часто повільніше за сучасні десктопні процесори), об'єднаних швидкісними сполуками. Саме ці з'єднання роблять суперкомп'ютер єдиним комп'ютером, а не кластером з окремих комп'ютерів, і є чи не найдорожчими його компонентами. Так ось, специфіка обчислювальних алгоритмів, які використовуються Folding@Home у тому, що швидкісні з'єднання між процесорами не потрібні, а необхідна максимізація швидкості кожного процесора. Тому навіть якщо у розпорядженні проекту був суперкомп'ютер із 1000 процесорів, то він би видавав результати не швидше, ніж 1000 окремих комп'ютерів із такими ж процесорами. Проте для отримання важливих результатів у Folding@Home потрібні не тисячі процесорів, а сотні тисяч. Тому розрахунки, які проводять учасники проекту, неможливі будь-яким іншим способом на даному етапі розвитку обчислювальної техніки і ще довго не будуть можливі.
Результати роботи проектуНа відміну від іншихпроектів розподілених обчислень, Folding@Home працює під егідою академічної установи, Pande Group, що входить до складу кафедри хімії Стенфордського університету. Pande Group є неприбутковою організацією, яка не продає дані, отримані в результаті роботи даного проекту, і не отримує грошей будь-яким іншим способом. Отримані дані робляться доступними для інших дослідників на сайті проекту в міру завершення прорахунку окремих симуляцій згортання білків. Аналіз симуляцій співробітниками Pande Group публікується в наукових журналах і робиться доступним на сайті проекту.
Параметри конфігурації клієнтаЗагальні установки (секція http)
- Завантаження процесора (параметрcpuusage). При роботі клієнтської програми використовується 100% ресурсів процесора, але можна зменшити навантаження на процесор до іншого відсотка, наприклад, якщо процесор перегрівається або працює нестабільно з максимальним навантаженням.
- Пріоритет процесу (параметрpriority). Системний пріоритет обчислювального ядра, яке запускається Folding@Home. Значення "0" означає пріоритет "idle", тобто. найнижчий і встановлений за замовчуванням. Встановлення значення більше 0 може дещо прискорити розрахунки, але ціною уповільнення виконання інших програм на даному комп'ютері та уповільнення реакції на дії користувача.
- Вимкнути асемблерну оптимізацію (параметрdisableassembly). Розрахункові ядра Folding@Home мають асемблерні оптимізації, використання яких прискорює обчислення за рахунок раціонального розподілу інструкцій між виконавчими блоками процесора. Це дозволяє виконувати по кілька операцій за такт і зменшити простої процесораочікуванні чергових порцій даних. Якщо конфігурація не дуже стабільна, то результуюче навантаження стає непосильним, і тому виникає необхідність вимкнути оптимізації, щоб комп'ютер хоч і повільніше, але все ж таки міг виконувати обчислення.
- Інтервал між контрольними точками (параметрcheckpoint) – це час між примусовими збереженнями стану завдання. Вибір оптимального значення інтервалу залежить від конфігурації комп'ютера та ймовірності його зависання чи раптового перезавантаження. На середніх за швидкістю (Sempron, Celeron і старших Athlon і Pentium) краще встановлювати 5-10 хвилин, на повільних та швидких – оптимальним було б більший час, 15-20 хв. Повільні та швидкі машини не просто так об'єднані в одну групу – і на тих, і на інших короткі інтервали недоцільні, хоч і з різних причин. На повільних – бо сам процес збереження триває багато часу. На швидких – тому що природні контрольні точки (кордони кадрів) і так трапляються досить часто, тому й необхідність у примусових контрольних точках виникає лише за розрахунків найскладніших завдань.
- Ігнорувати кінцеві дати (параметрignoredeadlines). Установка в Yes означає, що робота над завданням триватиме навіть після призначеної для нього кінцевої дати. Має сенс лише у випадку, якщо таймер комп'ютера збився або перекладався або не працює взагалі. Варто врахувати, якщо завдання справді прострочене, то за нього не будуть нараховані очки.
- Параметрtype. Якщо комп'ютер випущений більш, ніж 3-4 роки тому його процесор має частоту менше 1ГГц, існує ймовірність, що він встигати повертати завдання до встановленого крайнього терміну. В цьомуу разі можна налаштувати клієнтську програму приймати лише завдання, які мають певного кінцевого терміну (type=2). Значення type=1 говорить серверу, що необхідні завдання з кінцевою датою виконання. Значення type=0 і відсутність цього параметра залишає рішення серверу.
- Установки відображення (секціяgraphics)Параметри цієї секції впливають на вміст вікна графічного клієнта, на швидкість оновлення зображень молекул у ньому і т.д. Їхню установку найкраще проводити у вікні конфігурації графічного клієнта, де вони до того ж вичерпним чином пояснені.
На даний момент завдання у проекті бувають 4 основні типи. Дізнатися про тип завдання можна або за назвою ядра, яке відображається у вікні клієнта, або в журналі його роботи, або за номером проекту на сторінці проектів . Там вказано розмір завдання в атомах, кількість днів на виконання (бажане та крайнє), кількість балів, які будуть нараховані за виконання. З цієї ж сторінки можна перейти до детального опису проекту, в якому вказано, згортання якого білка досліджується і з якою метою.
Типи завдань та ядер:
- Tinker(докладніше - http://folding.stanford.edu/tinker.html ) – традиційне перевірене ядро, що використовується в проекті довгий час. Використовує моделі із неявним розчинником. Ядро написано давно, тому швидкісні оптимізації виконані на асемблері під традиційні арифметичні співпроцесори (х87). Внаслідок цього одні і ті ж Tinker-завдання виконуються значно швидше на процесорах AMD, ніж аналогічні за рейтингом Pentium IV або Power PC. Вимоги до пам'яті цього ядра мінімальні (близько 10 Мб).
- Gromacs(детальніше -http://folding.stanford.edu/gromacs.html ) – нове ядро, яке використовує моделі з явним розчинником. Протягом 2004-2005 років. стало основним ядром проекту, за допомогою якого розраховується більшість завдань завдяки більшій ефективності. Має оптимізації під SSE/3D-Now/Altive, які включаються автоматично за наявності підтримки операційної системи. Внаслідок цього швидкість виконання завдань мало залежить від архітектури процесора, а в основному від його тактової частоти, і для завдань великого об'єму від швидкості інтерфейсу «процесор-пам'ять», тобто. перевага за Athlon 64. Вимоги до пам'яті – від 10-30 Мб для типових завдань до 100-200 Мб для великих завдань, які надсилаються тільки тим, хто спеціально їх дозволив і має не менше 512 Мб оперативної пам'яті. Ядро Gromacs має три варіації (різні бінарні файли): стандартний Gromacs, GBGromacs (використовує неявний узагальнений розчинник Борна, DGromacs (оптимізований під SSE2 для випадків, коли потрібна висока точність розрахунків).
- Amber(докладніше - http://folding.stanford.edu/AMBER.html ) - це нове ядро, яке дозволяє виконувати розрахунки згортання в силових полях з поляризацією. Є досить ефективним, однак оптимізацій під SSE/3D-Now не має, і оскільки використовуються числа з плаваючою комою подвійної точності, то їх і не буде. Планується оптимізація під SSE2, яка має додати близько 10% швидкості. Не використовується клієнт Mac OS.
- QMD(докладніше - http://folding.stanford.edu/QMD.html ) – на відміну від інших ядер, QMD не використовує у розрахунках силових полів, натомість атомні взаємодії розраховуються квантовим хімічним методом чи шляхом вирішення рівняння Шредінгера. Вимоги до пам'ятідля розрахунків – від 200 Мб та більше. Завдання цього типу не завантажуються на комп'ютери з менш ніж 768 Мб оперативної пам'яті, і якщо користувач спеціально не дозволив їх. Ядро оптимізовано під SSE2, але у зв'язку з тим, що для компіляції використовується компілятор Intel, то підтримка SSE2 розпізнається тільки на процесорах Pentium IV і Xeon, і не розпізнається на процесорах Athlon 64 та Pentium M. Таким чином, на останні розрахунки можуть продовжуватись довше в порівнянні з аналогічними за рейтингом Pentium IV, і тому сервери проекту видають такі завдання тільки для процесорів Pentium IV. В останнім часом завдання, які виконувались ядром QMD, приносили найбільшу кількість очок, [але зараз завдання під це ядро тимчасово не видаються]. Машина, яка постійно обраховує QMD-блоки, здатна приносити своєму господареві понад 400 очок на день. Такий стан речей обумовлений тим, що такі блоки вимагають значних обчислювальних ресурсів, насамперед швидкісної пам'яті, і є експериментальними (протягом 2005 року). Учасники, які їх добровільно одержують та обробляють, мають, за задумом Pande Group, бути додатково винагороджені. Тому половина очок, нарахованих за кожен розрахований QMD-блок є бонусними. Для отримання QMD-блоків необхідно виконати такі умови:
- необхідно мати Pentium IV або AVD 64 з 512 Мб або більше;
- виставити bigpackets=yes у секції settings файлу client.cfg
- запускати клієнт з параметром advmethods в командному рядку.
Найчастіші питання, що задаються новачками у проекті Folding@Home
Чому мені знову видано завдання, яке я вже розрахував?Таке питання часто задається новачками,комп'ютер щойно прорахував завдання pNNN, і знову почав обробляти завдання pNNN. Такі ситуації цілком можливі, але вони не означають, що повторно розраховується те саме завдання. Насправді це різні завдання одного проекту, оскільки pNNN означає лише номер проекту, який у свою чергу може містити тисячі або десятки тисяч блоків-завдань. Щоб переконатися в тому, що це дійсно інше завдання, потрібно подивитися в протокол (у файлі "FAHlog.txt") і звернути увагу на числа виду (Run 33, Clone 82, Gen 3) після "Project: NNN" в одному з рядків , які відповідають фазі початку розрахунків Номери після “Run”, “Clone”, “Gen” будуть різними у кожному випадку.
Як зробити так, щоб результати з кількох комп'ютерів зараховувалися на одне ім'я? наприклад “romko” :) Все. Жодних додаткових установок. Чесно :)) Потрібно тільки не забувати про регістр, і тому Romko і Romko - це різні імена. Той самий користувач може бути членом декількох команд одночасно, якщо він підключив до проекту кілька комп'ютерів. Для цього достатньо вказати різні номери команд у конфігурації різних комп'ютерів.