Szybkie/rownolegle komputery

19.07.09, 18:21
Jestem inzynierem w Niemczech, mam w pracy problem. Jeden instytut (tez w
Niemczech) opracowywuje magnetycze systemy do rejestracji zachowania sie pola
magnetycznego. Istnieje do tego program napisany przez teoretyka ktory sluzy
do symulacji tego zjawiska.
Program jest napisana w Fortranie i pod Windows. Na PC. Ale okazuje sie ze
obliczenia potrzebynch sytuacji trwaja za dlugo. Nawet pare dni mimo ze PC
jest najszybszy jak mozliwe, ma RAM wystarczajaco wielki.
Prawdziwa rada jest komputer co najmniej 4 razy szybszy. Wiem ze sa takie z
rownoleglymi procesorami. Wlasnie do takiech celow budowane. Mam pare pytan:
1. Gdzie i jakie komputery tego typu mozna obejrzec/kupic? Link?
2. Jak program jest napisany pod Windows maja te szybsze tez (watpie ale..)
Windows? I sie po prostu da na nim ten program wystartowac?
3. Jak nie, znaczy ze ten teoretyk co ten program napisal musialby go na tym
nowym kompilowac? Dalej w Fortranie? Ale innym pasujacym do systemu
operacyjnego tego komputera?
4. Bylby wtedy program naprawde szybszy?

Chetnie bym sie od kogos z tej dziedziny czegos dowiedzial

Pozdrowienia
    • asteroida2 Re: Szybkie/rownolegle komputery 20.07.09, 12:18
      Obecnie do przeprowadzania kosztownych symulacji najlepiej wykorzystywać GPL
      (procesory graficzne dostosowane do obliczeń ogólnego typu), takie jak
      sprzedawane przez NVIDIA:
      www.nvidia.pl/object/cuda_what_is_pl.html
      W porównaniu z desktopowymi komputerami dają one kilkudziesięcikrotne
      przyspieszenie, za porównywalną cenę. Jedyny problem w tym, że program trzeba by
      przepisać w C i to wykorzystując biblioteki CUDA (aby go zrównoleglić).
      Najprościej w tym celu zatrudnić jakiegoś zdolnego studenta znającego C - bo
      choć technologia jest nowa, to nie jest specjalnie trudna do opanowania. Jeśli
      autor programu jest dostępny, to przetłumaczenie kodu źródłowego na inny język
      nie powinno stanowić dużego problemu.

      Generalnie, program napisany na jednoprocesorową maszynę nie da się przyspieszyć
      po prostu uruchamiając go na wieloprocesorowej. Jakaś modyfikacja kodu i tak
      będzie potrzebna, więc prawdopodobnie powyższe rozwiązanie jest najprostsze.
      • asteroida2 Re: Szybkie/rownolegle komputery 20.07.09, 12:52
        > (...) najlepiej wykorzystywać GPL (...)

        Oczywiście powinno być GPU.
      • jorl Re: Szybkie/rownolegle komputery 20.07.09, 18:37
        Dziekuje asteroido, wlasnie cos takiego szukalem. To jest rozwiazanie mojego, a
        wlasciwie najpierw tych fizykow, problemu.
        Oczywiscie ten teoretyk musi to kompilowac, czytam ze nawet Fortran jest (co
        prawda jakis stary). Mam chociaz cos w garsci aby tych fizykow pogonic. Bo sie
        grzebia i narzekaja jak to nic sie nie da zrobic.
        Pozdrowienia
        • losiu4 Re: Szybkie/rownolegle komputery 20.07.09, 20:57
          jorl napisał:

          > Oczywiscie ten teoretyk musi to kompilowac, czytam ze nawet Fortran jest (co
          > prawda jakis stary). Mam chociaz cos w garsci aby tych fizykow pogonic. Bo sie
          > grzebia i narzekaja jak to nic sie nie da zrobic.

          Fortran, owszem, dość stary (przynajmniej za moich czasów, bo potem odszedł był
          w niebyt), ale był naprawdę jary. Dostosowany do maszyny (na unixie). Teraz -
          nie wiem co i jak, ale jak sobie przypomnę badania kompilatorów pewnych języków
          pod różnym systemami ("równoległymi", jak najbardziej) to jeśli miałbym być
          szczery - więcej ufaj postępowi szybkości procesorów niż postępowi systemów
          które pod nimi siedzą.

          Pozdrawiam

          Losiu
          • jorl Re: Szybkie/rownolegle komputery 21.07.09, 20:59
            Drogi losiu,
            nie bardzo rozumiem co chciales powiedziec. Post asteroidy mial link z ktorego
            sie dowiedzialem o pewnej i chyba najlepszej mozliwosci rozwiazania mojego
            problemu. Tej mozliwoscie dotad nie znalem tez i dlatego ze takiego problemu jak
            teraz jeszcze nie mialem.
            Dla wyjasnienie uzywa sie do przeprowadzenia obliczen, aby byly szybsze, nie CPU
            a procesory graficzne ktore sa w kazdym PC. Pisza ze Unii w München do obliczen
            aerodynamicznych zastosowal do obliczen karte graficzna za 100Euro w PC i
            uzyskal 7 razy szybciej wyniki. Sa to normalne PC z dobrymi kartami graficznymi
            pod np. Windows ale potrzeba do tego treibery aby te graficzne karty wprzac do
            obliczen. Oczywiscie program musi byc przez pasujacy, bo musi on przetlumaczyc
            na dzialania/rozkazy w tych graficznych kartach, kompailer. Pisza ze maja C
            Kompailery ale nawet Fortran. Dlaczego Fortran? Bo ten fizyk ktory ten "moj"
            program napisal ma go w Fortranie.
            Oczywiscie tak naprawde jest to sprawa tych fizykow ten problem rozwiazujacy, ja
            bede ta strukture magnetyczna uzywal czyli musze mierzyc za pomoca pomiarow
            mostkow stan tej struktury. Ale ostatnio plakali ci fizycy ze jak chca dokladnie
            symulowac to trwa na PC dni. Wiec chce im pomoc bo tym samym sobie pomoge.
            Nawiasem mowiac ten program napisal fizyk teoretyk Rosjanin mieszkajacy teraz w
            Niemczech. Coz to jest pierwsza liga fizykow. Ci co potrafia matematycznie
            problem symulowac a obliczenia tych ogromnych rownan rozniczkowych sa
            numerycznie prowadzone na komputerach. Druga liga fizykow uzywa tych programow
            ale sami ta teorze matematyczna juz nie bardzo by potrafili. Od tego sa Rosjanie
            przeciez. Tak jakos wyglada.
            Pozdrowienia
            • losiu4 Re: Szybkie/rownolegle komputery 31.08.09, 22:23
              jorl napisał:

              masz rację. Przepraszam. Chciałem zaczepić z innej strony, Ty chciałeś konkretu.

              >Pisza ze Unii w München do obliczen
              > aerodynamicznych zastosowal do obliczen karte graficzna za 100Euro
              > w PC i uzyskal 7 razy szybciej wyniki.

              a to to spoko. Byle sięgać jak najniżej, na co niestety nie pozwalają najnowsze
              sysopy. Nb. swego czasu bardzo spodobały mi się procesory sygnałowe Motoroli.
              Oferuje ona gadżety do szybkiego wykorzystania. Zresztą nie tylko ona, inne
              firmy oferują podobne rzeczy.

              Pozdrawiam

              Losiu
    • madcio Re: Szybkie/rownolegle komputery 23.07.09, 14:55
      Odpowiedź w skrócie: nie. Program, który miałby efektywnie wykorzystywać maszyny
      wieloprocesorowe musi być pisany specjalnie z myślą o wielowątkowości. Jeśli ta
      twoja aplikacja nie była pisana z taką myślą, będzie ona prawdopodobnie
      jednowątkowa i, niestety, poprawy szybkości pod taką maszyną się nie odczuje.

      Tak czy owak, asterioda już wskazał dobre rozwiązanie tego problemu. Swego czasu
      było parę artykułów w prasie komputerowej opisujących, do czego można użyć prócz
      renderowania grafiki współczesne karty graficzne. :)
    • kala.fior Re: Szybkie/rownolegle komputery 31.08.09, 22:40
      ...a może wynajęcie czasu na jakimś mainframe jest najprostsze ale chyba nie
      najtańsze. Wszystko zależny od $ i deadlines....
      może jakiś uniwerek ma takie serwisy albo IBM lub podobne...
    • m_caliban Re: Szybkie/rownolegle komputery 01.09.09, 09:42
      Potwierdzam, napisanie programu w C z wykorzystaniem bibliotek CUDA
      jest świetnym pomysłem. U nas informatycy użyli takiego rozwiązania
      do opracowania szybkich algorytmów do dekonwolucji obrazu (z
      mikroskopu konfokalnego) i wszystko hula nieprawdopodobnie.
      A to dlatego, że w sumie dekonwolucja sprowadza się do mielenia
      setek tysięcy faftylionów operacji na macierzach - a to dokładnie to
      samo, co jest potrzebne do gierek (do operowania teksturami
      chociażby), więc katy graficzne są specjalnie z myślą o tym
      projektowane i ich oprogramowanie też.
Pełna wersja