Computational Science

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

7
Czy analiza algorytmiczna polegająca na liczeniu flopów jest przestarzała?
Na moich kursach analizy numerycznej nauczyłem się analizować wydajność algorytmów, licząc liczbę wymaganych operacji zmiennoprzecinkowych (klap) w stosunku do wielkości problemu. Na przykład w tekście Trefethen & Bau na temat numerycznej algebry liniowej są nawet trójwymiarowe zdjęcia liczby flopów. Teraz modne jest stwierdzenie, że „flopy są bezpłatne”, ponieważ opóźnienie pamięci …

9
Programowanie funkcjonalne i informatyka naukowa
Przepraszam, jeśli jest to niejasne pytanie, ale oto: W ciągu ostatnich kilku lat programowanie funkcjonalne cieszyło się dużym zainteresowaniem społeczności inżynierów oprogramowania. Wielu zaczęło używać języków takich jak Scala i Haskell i odniosło sukces w porównaniu z innymi językami programowania i paradygmatami. Moje pytanie brzmi: jako eksperci w dziedzinie obliczeń …

4
Co sprawia, że ​​Fortran jest szybki?
Fortran zajmuje szczególne miejsce w programowaniu numerycznym. Z pewnością możesz tworzyć dobre i szybkie oprogramowanie w innych językach, ale Fortran nadal działa bardzo dobrze pomimo swojego wieku. Co więcej, łatwiej jest tworzyć szybkie programy w Fortran. Robiłem szybkie programy w C ++, ale musisz bardziej uważać na takie rzeczy, jak …

18
Gdzie można uzyskać dobre zestawy danych / problemy testowe do testowania algorytmów / procedur?
Oceniając jakość oprogramowania, którego zamierzasz użyć (niezależnie od tego, czy jest to coś, co napisałeś, czy puszki w puszce) w pracy obliczeniowej, często dobrym pomysłem jest sprawdzenie, jak dobrze działa na standardowych zestawach danych lub problemach. Gdzie można uzyskać te testy do weryfikacji procedur obliczeniowych? (Poproszę jedną stronę internetową / …

4
Standardy naukowe dla błędów numerycznych
W mojej dziedzinie badań specyfikacja błędów eksperymentalnych jest powszechnie akceptowana, a publikacje, które ich nie dostarczają, są bardzo krytykowane. Jednocześnie często stwierdzam, że wyniki obliczeń numerycznych są podawane bez uwzględnienia błędów numerycznych, mimo że (a może dlatego, że) często działają wątpliwe metody numeryczne. Mówię o błędach wynikających z dyskretyzacji i …

8
Jak połączyć kod z publikacjami
Prace naukowe w informatyce naukowej (i obecnie wiele innych dziedzin) zazwyczaj zawierają pewną ilość kodu lub nawet całe pakiety oprogramowania, które zostały napisane specjalnie dla tego artykułu lub zostały użyte do uzyskania wyników w pracy. Jaki jest najlepszy sposób, aby pomóc czytelnikom tego dokumentu uzyskać dostęp do kodu? Moje obecne …

14
Jakie oprogramowanie i przepływ pracy jest zalecane do publikowania danych naukowych i wykresów?
Które oprogramowanie zapewnia dobry przepływ pracy - od zwykłego wydruku kilku punktów danych po tworzenie grafiki na poziomie publikacji ze szczegółowymi stylami, składem matematycznym i „profesjonalną jakością”? Jest to trochę związane z pytaniem Davida ( jakie atrybuty czynią figurę profesjonalną jakością? ), Ale nie skupia się na atrybutach, ale na …

3
Jaki jest stan techniki w równoległych metodach ODE?
Obecnie szukam równoległych metod integracji ODE. Istnieje wiele nowej i starej literatury opisującej szeroki wachlarz podejść, ale nie znalazłem żadnych ostatnich badań ani artykułów przeglądowych opisujących ogólnie ten temat. Jest książka Burrage [1], ale ma ona prawie 20 lat i dlatego nie obejmuje wielu bardziej nowoczesnych pomysłów, takich jak algorytm …

2
Dlaczego podział jest o wiele bardziej złożony niż inne operacje arytmetyczne?
Ostatnio spotkałem się z przypadkiem, w którym potrzebowałem operacji dzielenia liczb całkowitych na chipie, który jej nie miał (ARM Cortex-A8). Próbując zbadać, dlaczego tak musi być, odkryłem, że ogólny podział zajmuje znacznie więcej cykli niż dodawanie, odejmowanie lub mnożenie na prawie dowolnej architekturze liczb całkowitych (lub punktach stałych). Dlaczego tak …


4
Jak operator odwrotnego ukośnika MATLAB rozwiązuje dla macierzy kwadratowych?
Porównywałem kilka moich kodów z „zapasowymi” kodami MATLAB. Jestem zaskoczony wynikami. Uruchomiłem przykładowy kod (Sparse Matrix) n = 5000; a = diag(rand(n,1)); b = rand(n,1); disp('For a\b'); tic;a\b;toc; disp('For LU'); tic;LULU;toc; disp('For Conj Grad'); tic;conjgrad(a,b,1e-8);toc; disp('Inv(A)*B'); tic;inv(a)*b;toc; Wyniki: For a\b Elapsed time is 0.052838 seconds. For LU Elapsed time is …

5
Czy można rozpocząć karierę w SciComp bez udziału w badaniach nad bronią?
Jestem na międzynarodowej konferencji (ICIAM2019) na temat metod numerycznych i jestem zaskoczony przewagą aplikacji bezpośrednio związanych z badaniami zbrojeń. przykłady: Jeden ze zdobywców nagrody wygłasza mowę na temat matematycznego problemu rekonstrukcji radaru / wykrywania ruchomych obiektów, w swoim wystąpieniu opisuje sytuację „platformy” radaru na wysokości 8 km za pomocą aktywnego …

7
W jakie paradygmaty programowania powinienem inwestować, jeśli chcę, aby mój kod działał na maszynach petascale w przyszłości?
Z ankiety przeprowadzonej wśród top500 wynika, że ​​przemysł zmierza w kierunku wykładniczego wzrostu liczby rdzeni przetwarzających . Największe superkomputery wykorzystują MPI do komunikacji między węzłami, chociaż nie wydaje się, aby istniał wyraźny trend równoległości w węzłach, przy najprostszym (ale niekoniecznie najbardziej wydajnym) podejściu do mapowania pojedynczego procesu MPI na każdym …

6
Symboliczne pakiety oprogramowania dla wyrażeń Matrix?
Wiemy, że jest symetryczny i pozytywnie określony. Wiemy, że jest ortogonalny:B.ZAA\mathbf AbB\mathbf B Pytanie: czy symetryczny i pozytywnie określony? Odpowiedź: TakB ⋅ A ⋅ B⊤B⋅A⋅B⊤\mathbf B \cdot\mathbf A \cdot\mathbf B^\top Pytanie: Czy komputer mógł nam to powiedzieć? Odpowiedź: Prawdopodobnie. Czy istnieją jakieś symboliczne systemy algebry (takie jak Mathematica), które obsługują …

11
Miejsca publikacji artykułów podkreślających oprogramowanie
Oprogramowanie jest podstawową częścią nauki obliczeniowej i jest coraz częściej uznawane za istotną część dokumentacji naukowej. Biorąc pod uwagę wartość wykorzystania istniejącego i dobrze przetestowanego kodu, warto zakomunikować istnienie użytecznych kodów tak szeroko, jak to możliwe, i pochwalić ich twórców. W środowisku akademickim oznacza to publikowanie niektórych artykułów, które koncentrują …

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.