Редактор апаратного забезпечення
Усі комп’ютерні програми, включно з OghmaNano, працюють на фізичному обчислювальному обладнанні. Існує безліч можливих конфігурацій обладнання, які можуть бути в будь-якому комп’ютері: деякі комп’ютери мають велику кількість ядер процесора, а інші – лише одне. Так само комп’ютери можуть мати різний обсяг оперативної пам’яті, дискового простору та графічних процесорів. Щоб допомогти користувачеві максимально ефективно використовувати OghmaNano, передбачено редактор обладнання, де користувач може налаштувати, як OghmaNano працюватиме на конкретному комп’ютері. До нього можна отримати доступ через вікно вкладки «Симуляція» (??).
Якщо ви натиснете на це, відкриється вікно редактора апаратного забезпечення (??).
Апаратне вікно складається з різних вкладок, які дають користувачеві змогу редагувати налаштування, а також проводити тестування продуктивності пристрою.
Вкладка «Налаштування ЦП/ГП»
Ця вкладка використовується для налаштування взаємодії OghmaNano з графічним процесором (GPU) і центральним процесором (CPU), що описано в таблиці нижче. Як детально описано в інших розділах цієї інструкції, OghmaNano складається з двох частин: oghma_core.exe, який є обчислювальним ядром, і oghma_gui.exe, який є графічним інтерфейсом користувача. Тут можна точно налаштувати поведінку обох цих частин моделі.
- Кількість потоків, які використовує серверна частина: це максимальна кількість потоків, яку може використовувати OghmaNano oghma_core.exe. Це визначає: кількість одночасних ітерацій, які можна виконати; максимальну кількість ітерацій оптимізації, які можна виконати одночасно; максимальну кількість потоків, які використовуються для FDTD-моделювання; максимальну кількість файлів кешу DoS, які можна згенерувати одночасно; кількість точок у частотній області, які можна обчислити одночасно.
- Максимальна кількість основних екземплярів: тут встановлюється максимальна кількість екземплярів oghma_core.exe, які можуть бути запущені за допомогою графічного інтерфейсу. Якщо виконується параметричне сканування, то цей параметр визначає максимальну кількість одночасних симуляцій, які можуть виконуватися. Якщо значення параметра «Кількість потоків, що використовуються у фоновому процесі», встановлено на 4, і виконується симуляція FDTD, то встановлення значення «Максимальна кількість основних екземплярів» на 8 призведе до того, що графічний інтерфейс створить 8 екземплярів oghma_core.exe, кожен з яких використовуватиме 4 потоки, отже, знадобиться 32 ядра процесора.
- Час простою: іноді, коли програму OghmaNano запущено на суперкомп’ютері без нагляду, вона може припинити роботу, можливо, через помилку вводу-виводу або мережеву помилку. Цю опцію можна використовувати для встановлення максимальної тривалості окремої симуляції. Під окремою симуляцією я маю на увазі окрему криву залежності струму від напруги, окрему симуляцію в часовій області або окрему симуляцію в частотній області, але не повний набір, який включатиме запуск тисяч окремих симуляцій. Отже, якщо встановлено значення 2000 секунд, обчислювальний алгоритм завершить роботу, якщо, наприклад, окрема симуляція залежності струму від напруги триватиме довше 2000 секунд. Насправді кожна окрема симуляція повинна тривати лише кілька секунд, тому ця опція діє як крайня міра, якщо щось пішло не так.
- Максимальний час роботи: це максимальний час, протягом якого файл oghma_core.exe може перебувати в пам’яті. Якщо будь-яке моделювання або процес оптимізації триває довше, ніж цей час, він буде припинено. Це додатковий запобіжний захід, щоб запобігти нескінченному виконанню моделювань. Значення за замовчуванням – 4 дні.
- Процесори Steel: іноді, коли програму OghmaNano запускають на спільному комп’ютері, один користувач може запустити моделювання, поки інший користувач використовує значну кількість ядер. Через деякий час моделювання іншого користувача завершиться, і комп’ютер залишиться з неактивними процесорами. Якщо цю опцію встановлено на значення «True», то OghmaNano контролюватиме кількість вільних процесорів, і якщо їх стане більше, програма використовуватиме їх.
- Мінімальна кількість процесорів: використовується разом із наведеним вище параметром «Процесори Steel» для встановлення мінімальної кількості процесорів, які будуть задіяні.
- Зберігайте дані DoS на диску: OghmaNano зберігає таблиці пошуку на диску, щоб прискорити моделювання. Якщо цю опцію вимкнено, ці таблиці пошуку не зберігатимуться.
- Апаратне прискорення OpenCL для графічних процесорів: ця функція вмикає або вимикає апаратне прискорення графічного процесора, і в основному використовується під час моделювання методом FDTD.
- Назва графічного процесора: дозволяє вибрати графічний процесор, який буде використовуватися.
Кеш Newton.
Під час виконання моделювання з великою кількістю звичайних диференціальних рівнянь (ЗДР), наприклад, для одновимірних пристроїв з великою кількістю пасткових станів і великою кількістю просторових точок, або під час виконання двовимірного моделювання OFET, кожен крок зміни напруги може потребувати значного часу для обчислення. Це пов’язано з тим, що розв’язувач повинен розв’язувати кожен крок зміни напруги за допомогою методу Ньютона, доки не буде досягнуто збіжності. Для кожного кроку розв’язувача необхідно будувати матрицю Якобі, обчислювати її обернену матрицю, множити її на залишки та обчислювати оновлення для всіх змінних розв’язувача. Це може займати значний час на кожен крок (2000 мс). Одним із способів обійти цю проблему є збереження попередньо обчислених результатів на диску, а потім, коли користувач просить розв’язувач обчислити вже обчислену задачу, результат можна отримати з диска, а не переобчислювати. Це дуже корисно в процесі розробки OLED, коли потрібно оптимізувати оптичну структуру пристрою, але при цьому не змінювати електричну структуру. Можна виконувати нові оптичні моделювання з використанням вже попередньо обчислених електричних розв’язків. Параметри конфігурації відображаються в таблиці нижче.
Використання кешу Newton пов’язане з певними витратами, тому я рекомендував би його лише в тому випадку, коли вирішення електричної задачі відбувається надзвичайно повільно. Технічно кеш Newton працює шляхом обчислення MD5-хешу рівнів Фермі та потенціалів для створення хешу електричної задачі. Потім цей хеш порівнюється з даними, що зберігаються на диску. Якщо знайдено попередньо обчислене рішення, рівні Фермі/потенціали оновлюються до значень, отриманих з диска. Кеш зберігається в oghma_local, кожне попередньо обчислене рішення зберігається як окремий бінарний файл. Кожен запуск симуляції створює індексний файл, у якому зберігаються всі MD5-хеші з цієї симуляції. Коли кеш заповнюється, OghmaNano видаляє результати симуляції партіями на основі індексних файлів.
- Максимальний розмір кешу: визначає максимальний розмір кешу в мегабайтах. Я б рекомендував встановити приблизно 1 ГБ.
- Мінімальний вільний обсяг диска: визначає мінімальний обсяг дискового простору, необхідний для використання кешу. Ця опція призначена для запобігання заповненню кешем усього диска. Я б встановив значення приблизно 5 ГБ.
- Кількість симуляцій, які потрібно зберегти: тут можна встановити максимальну кількість ітерацій симуляції, які будуть збережені. Я б рекомендував встановити значення в межах від 20 до 100.
- Увімкнути кеш: ця функція вмикає або вимикає кеш Newton. За замовчуванням і за рекомендацією встановлено значення «Вимкнено».
Тест продуктивності апаратного забезпечення
У верхній лівій частині вікна апаратних налаштувань (??) є кнопка під назвою «Апаратний тест». Якщо натиснути на неї, OghmaNano проведе тестування вашого обладнання, а результат тесту можна переглянути у вікні (??). Цей тест перевіряє здатність вашого процесора обчислювати синус, експоненту та виділяти/звільняти пам’ять блоками. Він показує, скільки часу знадобилося для виконання кількох тисяч операцій, а також значення R (також відоме як Roderick). Це значення визначається як R = час, необхідний для виконання обчислень на вашому ПК / час, необхідний для виконання обчислень на моєму ПК. Отже, менші значення означають, що ваш ПК працює швидше, ніж мій. Мій ПК – це Intel(R) Core(TM) i7-4900MQ CPU @ 2.80 ГГц у ноутбуці Lenovo ThinkPad 2017 року. Тому більшість сучасних комп’ютерів повинні працювати швидше. Якщо у вас хороша продуктивність процесора, але ваші симуляції працюють повільніше, ніж мої відео на YouTube, то це, швидше за все, пов’язано з низькою швидкістю вводу-виводу, спричиненою антивірусними програмами, зберіганням симуляцій у OneDrive, використанням мережевих дисків або повісними USB-накопичувачами тощо.