Edytor sprzętu
Wszystkie programy komputerowe, w tym OghmaNano, działają na fizycznym sprzęcie obliczeniowym. Istnieje wiele różnych konfiguracji sprzętowych, które mogą być używane w dowolnym komputerze – niektóre komputery mają dużą liczbę rdzeni procesora, podczas gdy inne tylko jeden. Podobnie, komputery różnią się ilością pamięci, przestrzenią dyskową i kartami graficznymi. Aby pomóc użytkownikowi w uzyskaniu jak najlepszych rezultatów z OghmaNano, dostępny jest edytor sprzętu, w którym użytkownik może skonfigurować sposób działania OghmaNano na danym komputerze. Można do niego uzyskać dostęp za pomocą okna karty symulacji (??).
Jeśli klikniesz na to, otworzy się okno edytora sprzętu (??).
Okno ustawień sprzętowych składa się z różnych zakładek, które umożliwiają użytkownikowi edycję konfiguracji, a także przeprowadzenie testów wydajności urządzenia.
Zakładka konfiguracji procesora/karty graficznej
Ta zakładka służy do konfigurowania sposobu, w jaki OghmaNano współpracuje z procesorem graficznym (GPU) i procesorem centralnym (CPU), co opisano w poniższej tabeli. Jak szczegółowo opisano w innych częściach tej instrukcji, OghmaNano składa się z dwóch części: oghma_core.exe, który stanowi silnik obliczeniowy, oraz oghma_gui.exe, który jest graficznym interfejsem użytkownika. Można tutaj precyzyjnie dostosować sposób działania obu tych części modelu.
- Liczba wątków wykorzystywanych przez proces backendowy: to maksymalna liczba wątków, z których może korzystać OghmaNano oghma_core.exe. Określa to: liczbę jednoczesnych obliczeń, które mogą być wykonywane; maksymalną liczbę symulacji optymalizacyjnych, które mogą być uruchamiane jednocześnie; maksymalną liczbę wątków wykorzystywanych do symulacji FDTD; maksymalną liczbę plików pamięci podręcznej DoS, które mogą być generowane jednocześnie; liczbę punktów w dziedzinie częstotliwości, które mogą być obliczane jednocześnie.
- Maksymalna liczba instancji rdzenia: parametr ten określa maksymalną liczbę instancji programu oghma_core.exe, które mogą być uruchomione za pomocą interfejsu graficznego. Jeśli przeprowadzane jest skanowanie parametrów, parametr ten kontroluje maksymalną liczbę jednoczesnych symulacji, które mogą być wykonywane w tym samym czasie. Jeśli wartość parametru „Liczba wątków używanych przez proces w tle” została ustawiona na 4, a przeprowadzana jest symulacja FDTD, a następnie ustawiono wartość „Maksymalna liczba instancji rdzenia” na 8, interfejs graficzny uruchomi 8 instancji programu oghma_core.exe, z których każda będzie wykorzystywać 4 wątki, co oznacza, że potrzebnych będzie 32 rdzenie procesora.
- Czas bezczynności: Czasami, gdy program OghmaNano jest uruchamiany na superkomputerze bez nadzoru, może się zatrzymać, prawdopodobnie z powodu błędu wejścia/wyjścia lub błędu sieciowego. Ta opcja pozwala ustawić maksymalny czas trwania pojedynczej symulacji. Przez pojedynczą symulację rozumiem pojedynczą krzywą JV, pojedynczą symulację w dziedzinie czasu lub pojedynczą symulację w dziedzinie częstotliwości, ale nie całe dopasowanie, które wymagałoby uruchomienia tysięcy pojedynczych symulacji. Zatem, przy wartości 2000 sekund, algorytm zakończy działanie, jeśli na przykład pojedyncza symulacja JV trwa dłużej niż 2000 sekund. W rzeczywistości każda pojedyncza symulacja powinna trwać tylko kilka sekund, więc ta opcja działa jako ostateczne zabezpieczenie, jeśli coś poszło bardzo nie tak.
- Maksymalny czas działania: to maksymalny czas, przez jaki program oghma_core.exe może działać w pamięci. Jeśli symulacja lub proces dopasowywania trwa dłużej niż ten czas, zostanie on przerwany. Jest to zabezpieczenie, które ma zapobiegać niekończącym się symulacjom. Domyślna wartość to 4 dni.
- Procesory Steel CPU: Czasami, podczas uruchamiania programu OghmaNano na wspólnym komputerze, jeden użytkownik uruchamia symulację, podczas gdy inny użytkownik wykorzystuje znaczną liczbę rdzeni. Po pewnym czasie symulacje uruchomione przez drugiego użytkownika kończą się, a komputer pozostaje z nieaktywnymi procesorami. Jeśli ta opcja jest ustawiona na wartość „Prawda”, program OghmaNano będzie monitorował liczbę dostępnych procesorów i, jeśli będzie ich więcej, wykorzysta je.
- Minimalna liczba procesorów: używana wraz z opcją „Steel CPUs”, aby ustawić minimalną liczbę procesorów, które będą wykorzystywane.
- Zapisz dane DoS na dysku: OghmaNano zapisuje tabele danych na dysku, aby przyspieszyć symulacje. Jeśli ta opcja jest ustawiona na „fałsz”, tabele danych nie będą zapisywane.
- Przyspieszenie obliczeń za pomocą OpenCL na procesorze graficznym (GPU): ta opcja włącza lub wyłącza przyspieszenie obliczeń na GPU, co jest szczególnie przydatne podczas symulacji metodą FDTD.
- Nazwa karty graficznej: Wybiera kartę graficzną, która ma być używana.
Pamięć podręczna Newtona
Podczas przeprowadzania symulacji z dużą liczbą równań różniczkowych zwyczajnych (ODE), na przykład w przypadku urządzeń jednowymiarowych z dużą liczbą stanów pułapkowych i dużą liczbą punktów przestrzennych, lub podczas przeprowadzania symulacji dwuwymiarowych OFET, obliczenie każdego kroku zmiany napięcia może trwać dość długo. Dzieje się tak, ponieważ solver musi rozwiązywać każdy krok zmiany napięcia za pomocą metody Newtona, aż do uzyskania zbieżności. Dla każdego kroku solvera należy utworzyć macierz Jacobiego, odwrócić ją, pomnożyć przez reszty i obliczyć aktualizacje wszystkich zmiennych solvera. Może to zająć sporo czasu na każdy krok (2000 ms). Jednym ze sposobów na obejście tego problemu jest zapisywanie wcześniej obliczonych wyników na dysku, a następnie, gdy użytkownik poprosi solver o obliczenie już obliczonego problemu, wynik można pobrać zamiast go ponownie obliczać. Jest to bardzo przydatne w projektowaniu OLED, gdzie próbuje się zoptymalizować strukturę optyczną urządzenia, pozostawiając niezmienioną strukturę elektryczną. Można uruchamiać nowe symulacje optyczne z wykorzystaniem już wcześniej obliczonych rozwiązań elektrycznych. Opcje konfiguracyjne są wyświetlane w poniższej tabeli.
Korzystanie z pamięci podręcznej Newton wiąże się z pewnymi kosztami, dlatego polecam ją stosować tylko wtedy, gdy rozwiązywanie problemu elektrycznego jest bardzo powolne. Technicznie rzecz biorąc, pamięć podręczna Newton działa poprzez obliczanie sumy MD5 poziomów Fermiego i potencjałów, a następnie generuje z niej skrót problemu elektrycznego. Następnie porównuje się go z danymi zapisanymi na dysku. Jeśli zostanie znalezione wcześniej obliczone rozwiązanie, poziomy Fermiego/potencjały są aktualizowane do wartości znalezionych na dysku. Pamięć podręczna jest przechowywana w pamięci podręcznej oghma_local, a każde wcześniej obliczone rozwiązanie jest zapisywane jako nowy plik binarny. Każde uruchomienie symulacji generuje plik indeksu, w którym przechowywane są wszystkie sumy MD5 z danej symulacji. Gdy pamięć podręczna zapełni się, OghmaNano usuwa wyniki symulacji partiami, na podstawie plików indeksu.
- Maksymalny rozmiar pamięci podręcznej: określa maksymalny rozmiar pamięci podręcznej w megabajtach. Zalecam ustawienie wartości około 1 GB.
- Minimalna ilość wolnego miejsca na dysku: określa minimalną ilość miejsca na dysku, która musi być dostępna, aby można było korzystać z pamięci podręcznej. Opcja ta ma zapobiegać zapełnianiu dysku przez pamięć podręczną. Zalecam ustawienie wartości około 5 GB.
- Liczba symulacji do zachowania: Określa maksymalną liczbę uruchomionych symulacji, które zostaną zapisane. Sugeruję ustawić tę wartość w zakresie od 20 do 100.
- Włącz pamięć podręczną: Ta opcja umożliwia lub wyłącza pamięć podręczną Newton. Domyślna i zalecana wartość to „Wyłączone”.
Test wydajności sprzętu.
W lewym górnym rogu okna sprzętowego (??) znajduje się przycisk o nazwie „Test wydajności sprzętu”. Po kliknięciu tego przycisku program OghmaNano przeprowadzi test wydajności sprzętu, a wyniki tego testu można zobaczyć w oknie (??). Test ten sprawdza, jak dobrze procesor radzi sobie z obliczaniem funkcji sinus i eksponencjalnej oraz z alokacją i dealokacją pamięci w blokach. Wyświetla, ile czasu zajęło wykonanie kilku tysięcy operacji, a także wartość R (zwana również wartością Rodericka). Wartość R jest definiowana jako: czas potrzebny na wykonanie obliczeń na Twoim komputerze podzielony przez czas potrzebny na wykonanie obliczeń na moim komputerze. Zatem mniejsze wartości oznaczają, że Twój komputer jest szybszy od mojego. Mój komputer to Intel(R) Core(TM) i7-4900MQ CPU @ 2.80GHz, umieszczony w laptopie Lenovo ThinkPad z 2017 roku. Większość nowoczesnych komputerów powinna być szybsza. Jeśli masz dobry procesor, ale Twoje symulacje działają wolniej niż moje filmy na YouTube, to najprawdopodobniej wynika to ze słabej prędkości odczytu/zapisu, spowodowanej programami antywirusowymi, przechowywaniem symulacji w OneDrive, korzystaniem z dysków sieciowych lub wolnych nośników USB itp.