Computational Science

Pytania i odpowiedzi dla naukowców używających komputerów do rozwiązywania problemów naukowych


14
Czy warto pisać testy jednostkowe dla kodów badań naukowych?
Jestem głęboko przekonany o wartości stosowania testów weryfikujących pełny program (np. Testy konwergencji), w tym zautomatyzowanego zestawu testów regresji . Po przeczytaniu kilku książek o programowaniu, miałem dokuczliwe wrażenie, że „powinienem” napisać testy jednostkowe (tj. Testy, które weryfikują poprawność pojedynczej funkcji i nie sprowadzają się do uruchomienia całego kodu w …

10
Jakie problemy nadają się dobrze do obliczeń na GPU?
Mam więc przyzwoitą uwagę, z jakimi problemami, z którymi pracuję, najlepiej rozwiązać szeregowo, i którymi można zarządzać równolegle. Ale w tej chwili nie mam pojęcia, co najlepiej poradzić sobie z obliczeniami opartymi na procesorze i co powinno zostać odciążone na GPU. Wiem, że jest to podstawowe pytanie, ale większość moich …
84 gpu 

17
Czy istnieje wysokiej jakości nieliniowy solver programowania dla Pythona?
Mam kilka trudnych, niewypukłych problemów globalnej optymalizacji do rozwiązania. Obecnie używam MATLAB's Optimization Toolbox (konkretnie fmincon()z algorytmem = 'sqp'), co jest dość skuteczne . Jednak większość mojego kodu znajduje się w języku Python i chciałbym również przeprowadzić optymalizację w języku Python. Czy istnieje solver NLP z powiązaniami Pythona, z którym …

6
O ile lepsze są naprawdę kompilatory Fortran?
To pytanie jest rozszerzeniem dwóch dyskusji, które pojawiły się ostatnio w odpowiedziach na „ C ++ vs Fortran for HPC ”. I jest to trochę więcej wyzwanie niż pytanie ... Jednym z najczęściej słyszanych argumentów na korzyść Fortrana jest to, że kompilatory są po prostu lepsze. Ponieważ większość kompilatorów C …
74 fortran  c  blas  benchmarking 

10
Jakie są dobre strategie poprawy wydajności szeregowej mojego kodu?
Pracuję w nauce obliczeniowej, w wyniku czego spędzam nietrywialną ilość czasu próbując zwiększyć naukową przepustowość wielu kodów, a także zrozumieć ich efektywność. Załóżmy, że oceniłem wydajność w porównaniu do czytelności / możliwości ponownego użycia / konserwacji kompromisu oprogramowania, nad którym pracuję, i zdecydowałem, że nadszedł czas na wydajność. Załóżmy również, …

12
C ++ vs Fortran dla HPC
W moim programie doktoranckim z zakresu obliczeń pracujemy prawie wyłącznie w C ++ i Fortran. Wygląda na to, że niektórzy profesorowie wolą jeden od drugiego. Zastanawiam się, który z nich jest „lepszy” lub czy w pewnych okolicznościach jest lepszy od drugiego.
56 hpc  fortran  c++  languages 

5
Jak pobrać FFT nierówno rozmieszczonych danych?
Fast Fourier Transform algorytm oblicza rozkładu Fouriera przy założeniu, że punkty wejściowe są równo rozłożone w dziedzinie czasu . Co jeśli nie są? Czy istnieje inny algorytm, którego mógłbym użyć, lub w jakiś sposób zmodyfikować FFT, aby uwzględnić efektywną zmienną częstotliwość próbkowania?tk=kTtk=kTt_k = kT Jeśli rozwiązanie zależy od sposobu dystrybucji …


17
Czy często nie używa się bibliotek do standardowych algorytmów numerycznych i dlaczego?
Wiele algorytmów numerycznych (integracja, różnicowanie, interpolacja, funkcje specjalne itp.) Jest dostępnych w bibliotekach obliczeń naukowych, takich jak GSL . Ale często widzę kod z „ręcznie walcowanymi” implementacjami tych funkcji. Czy w przypadku małych programów, które niekoniecznie są przeznaczone do publicznej dystrybucji, powszechną praktyką wśród naukowców zajmujących się obliczeniami jest samodzielne …
54 libraries  c 

7
Jakie podstawowe umiejętności powinien posiadać każdy naukowiec? [Zamknięte]
Każdy naukowiec musi się trochę dowiedzieć o statystykach: co oznacza korelacja, jaki jest przedział ufności i tak dalej. Podobnie każdy naukowiec powinien wiedzieć trochę o informatyce: pytanie brzmi: co? Czego można oczekiwać od każdego pracującego naukowca, który wie o tworzeniu i korzystaniu z oprogramowania? Nasza lista podstawowych umiejętności --- rzeczy, …
52 education 

4
Jakich wskazówek należy przestrzegać przy wyborze rzadkiego solvera systemu liniowego?
W aplikacjach pojawiają się rzadkie systemy liniowe. Do rozwiązania tych systemów jest wiele procedur do wyboru. Na najwyższym poziomie istnieje przełom między metodami bezpośrednimi (np. Rzadka eliminacja Gaussa lub rozkład Choleskiego, ze specjalnymi algorytmami porządkowania i metodami wielopłaszczyznowymi) i iteracyjnymi (np. GMRES, gradient (sprzężony)). Jak określić, czy zastosować metodę bezpośrednią, …

3
Jakie są koncepcyjne różnice między metodą elementu skończonego a metodą objętości skończonej?
Istnieje oczywista różnica między różnicą skończoną a metodą objętości skończonej (przejście od definicji punktowej równań do średnich całkowitych nad komórkami). Ale uważam, że FEM i FVM są bardzo podobne; oba używają integralnej formy i średniej ponad komórkami. Co robi metoda MES, a nie FVM? Przeczytałem trochę tła na temat MES. …

5
Jakie są kryteria wyboru między różnicami skończonymi a elementami skończonymi
Przyzwyczaiłem się myśleć o różnicach skończonych jako szczególnym przypadku elementów skończonych na bardzo ograniczonej siatce. Jakie są zatem warunki wyboru między metodą różnic skończonych (FDM) a metodą elementów skończonych (FEM) jako metodą numeryczną? Po stronie metody różnic skończonych (FDM) można liczyć, że są one koncepcyjnie prostsze i łatwiejsze do wdrożenia …

8
Jakie są dobre sposoby dokumentowania oprogramowania naukowego?
Wiele razy, kiedy odziedziczyłem lub napotkałem kod naukowy napisany przez innych ludzi (lub czasami nawet moją własną pracę), zauważyłem, że dokumentacja jest albo rzadka, albo nie istnieje. Jeśli mam szczęście, widzę pouczające komentarze. Jeśli mam szczęście, są nawet komentarze Doxygen i Doxyfile, więc mam interfejsy funkcyjne i trochę sformatowanego HTML …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.