Czy w przypadku skomplikowanych obliczeń matematycznych ważniejsze są dodatkowe wątki lub szybki dostęp do dysku?

8

W następnym semestrze zamierzam rozpocząć badania nad kombinatoryką. Używałem i zakochałem się w komputerach Mac i Wolfram Mathematica 8 i zamierzam je wykorzystać do tego projektu i na studiach. Będę podwójnym studentem fizyki i matematyki. Ponieważ mam ograniczony budżet, zastanawiałem się, co będzie priorytetem dla moich aplikacji: Posiadanie czterordzeniowego procesora zamiast dwurdzeniowego procesora, czy też posiadanie dysku SSD zamiast dysku twardego?

Fingolfin
źródło
1
Pozwoliłem sobie na edytowanie tytułu pytania, być może nieco bardziej do rzeczy, i potencjalnie przechylałem wszelkie głosy szarpnięcia kolanem, aby zamknąć w oparciu o nie zadawanie merytorycznego pytania. Osobiście uważam, że jest to dobre pytanie do tej konkretnej aplikacji.
Shinrai
3
Powiedziałbym, że najpierw wybierz tyle pamięci RAM, ile to możliwe.
liori
1
Zgadzam się z dodaniem większej ilości pamięci RAM. bardzo słabo rozumiem kombinatorykę, ale mogą one być odpowiednie do obliczeń opartych na GPU. jeśli można go zastosować w trybie wielowątkowym, prawdopodobnie będzie on działał znacznie szybciej na GPU przy użyciu CUDA lub równoważnego (o wiele wielkości szybszy przy pękaniu md5 niż na górze procesorów z górnej półki).
Silverfire
Jestem ciekawy, dlaczego zbliżają się głosy - co według was budzi wątpliwości w związku z tym pytaniem?
Shinrai

Odpowiedzi:

17

W przypadku aplikacji, które będziesz wykonywać, 4 rdzenie byłyby lepsze niż dysk SSD.

Mathematica w szczególności obsługuje procesory wielordzeniowe i skaluje się wyjątkowo dobrze. Spójrz tutaj:

http://www.wolfram.com/technology/guide/MulticoreSupport/

Nie spodziewałbyś się tak dużej różnicy od napędu SSD w aplikacjach matematycznych i fizycznych, które nie przetwarzają gigabajtów danych z dysku.

bwall
źródło
+1 - Jest to jeden z niewielu przypadków, w których więcej rdzeni / wyższych zegarów przyniesie większą korzyść niż dysk SSD. To także daleko, FAR łatwiej jest później zaktualizować pamięć w większości komputerów Mac niż procesor.
afrazier
Zwykle nie lubię takich pytań, ale jest to dość oparte na faktach; szybkość tego rodzaju obliczeń (chyba że mają one trywialną złożoność) znacznie poprawią się dzięki dodatkowym wątkom przetwarzania.
Shinrai
1
Podobną decyzję miałem przed laty. Kup i486DX33 z dyskiem twardym lub i486DX50 z dyskietkami. W przypadku czysto matematycznych obliczeń (takich jak te, którymi się martwiłem), DX50 wygrał, mimo radykalnie wolniejszego dostępu do dysku!
Brian Knoblauch,
Częściowo nie zgadzam się z potrzebą ogromnych plików, aby uzyskać przewagę z szybkiego dysku. Przez ostatnie piętnaście lat pracowałem z serią silników do analizy fizyki jądrowej i cząstek elementarnych oraz Monte Carlos; i podczas gdy te przesiane umiarkowanie duże stosy danych, wspólną rzeczą związaną z IO było użycie wielu osobnych plików ... takich jak dziesięć plików konfiguracyjnych (zawiera mechanizm i / lub wiele warstw awaryjnych ustawień domyślnych) oraz dysk średniej wielkości oparta na bazie danych geometrii, trzy pliki dziennika, system punktów kontrolnych oprócz dużych plików wejściowych i wyjściowych.
dmckee --- były moderator kociak
1
+1 - ale zaleciłbym również upewnienie się, że system ma wystarczającą ilość pamięci RAM. Upewnij się, że masz 8 GB, a nie 4 w swoim systemie (w Lionie jest to naprawdę mało) i że masz szybsze procesory, chyba że zamierzasz przetwarzać GB na GB danych. (Ankiety wiertnicze, symulacje bomb nuklearnych itp.) Jeśli później potrzebujesz więcej / szybszego przechowywania, zawsze możesz użyć zewnętrznego urządzenia podłączonego do Thunderbolt. Procesor jest niepraktyczny, chyba że wybierasz komputer Mac Pro.
SplinterReality
3

Przy określaniu wymagań dotyczących nowego komputera zalecam otrzymanie zaleceń profesorów dotyczących radzenia sobie z eksplozją kombinatoryczną . Bez wątpienia będziesz musiał rozwiązać niektóre problemy, które mają ten efekt uboczny. Jeśli wymagania dotyczące pamięci pośredniej przekraczają dostępną pamięć główną, system rozpocznie zamianę pamięci dyskowej ( thrashowanie ), a nawet proste problemy potrwają „na zawsze”.

Kiedy w poprzednich latach musiałem pracować z takimi problemami z Mathematicą, moje motto brzmiało: „Jeśli przebijesz, nie żyjesz”.

Emerytowany inżynier
źródło
2

Podaję to jako osobną odpowiedź, ponieważ nikt jeszcze nie wspomniał o słoniu na kanapie:

Procesor jest niepraktyczny, aby zmienić go później na większości komputerów Mac (cokolwiek innego niż Mac Pro), ale szybką pamięć zewnętrzną można dodać później, jeśli masz naprawdę ogromne zbiory danych, które i tak nie byłyby praktyczne do przechowywania na dyskach wewnętrznych.

W przypadku wszystkiego, co nie wymaga dużych GB do TB danych, procesory będą bardziej korzystne, a jeśli potrzebujesz dużego GB / TB danych, dysk SSD też go nie wyciąć i będziesz potrzebować zewnętrznego urządzenia.

Moja rekomendacja: 8 GB pamięci RAM i najszybsze procesory, na jakie Cię stać. Jeśli potrzebujesz później bardzo szybkich dysków do przetwarzania TB danych, kup zewnętrzne urządzenie z interfejsem Thunderbolt. (Największe dyski SSD i tak nie wytrzymają)

SplinterReality
źródło
1

Jeśli twoje zadania mogą być zrównoleglone (a zazwyczaj matematyka / fizyka może to być), skorzystaj z wielu rdzeni i tyle pamięci RAM, ile możesz sobie pozwolić / będziesz potrzebować. Ogólnie rzecz biorąc, sytuacja będzie polegać na tym, że potrzebujesz dużo miejsca na dysku do przechowywania starych danych (przetwarzanych różnymi metodami), a części IO obliczeń będą pomijalne w porównaniu do części procesora. Rozważałbym prawdopodobnie uzyskanie dobrego GPU, który można by zaprogramować na poważne potrzeby obliczeniowe; ale to prawdopodobnie przesada w przypadku twojego pytania.

Załadowanie 1 GB danych z dysku do bufora (który może przejść do pamięci) zajmuje około 10 sekund za pomocą dysku twardego o prędkości 7200 obr / min; i to jest jednorazowy koszt większości obliczeń. Rzadko twoje skomplikowane obliczenia matematyczne zajmą zaledwie kilka sekund (a jeśli tak, to wąskim gardłem jest interpretacja wyników i przydzielanie nowych zadań do wykonania - a nie szybkość operacji IO). Nie jest niczym niezwykłym posiadanie wąskiego gardła obliczeniowego, w którym dane są ładowane do pamięci, a wykonanie zadania zajęłoby jeden rdzeń 2 dni; ale 4 rdzenie mogłyby to zrobić w pół dnia. Teraz brak wystarczającej ilości pamięci RAM i konieczność odczytu / zapisu pamięci RAM na dysk spowoduje ogromne spowolnienie (nawet przy użyciu dysku SSD do wymiany).

Jako przybliżony przewodnik; losowy dostęp odczytany z pamięci RAM przyjmuje wielkość 10 ns; z dysku SSD dziesięć tysięcy razy wolniej niż (100 mikro-s); a dysk twardy jest około 100 razy wolniejszy (10 ms). Więc tak naprawdę nie chcesz wykonywać odczytów z losowego dostępu z dysku SSD lub dysku twardego. Również w przypadku kolejnych odczytów z dysku (np. Czytasz plik z całym zestawem danych do pamięci) dyski twarde nie będą działać tak źle.

dr jimbob
źródło
-1

Jeśli patrzysz na MacBooka Pro, wybrałbym przede wszystkim rozmiar ekranu. Z tego, co widzę, skutecznie określa to również liczbę rdzeni w maszynie. Następnie maksymalnie RAM (być może innej firmy). Następnie spójrz na dysk SSD. Do końca pozostawiłbym różnicę między rdzeniem 2,0 GHz a 2,2 GHz dla modelu 15-calowego. Jest to stosunkowo niewielka różnica w wydajności dla różnicy w cenie.

Mistrz Bretta
źródło
Zakładam, że przy tak poważnej pracy OP patrzy na komputer, a nie na laptop. Dostajesz znacznie więcej mocy obliczeniowej za swoje pieniądze (tak, nawet od Apple McOverpriced ...)
Shinrai
@Shinrai Trudno powiedzieć bez dodatkowych informacji na temat tego, co rozważa OP, jaki jest przedział cenowy, czy OP ma już monitor itp. ... iMac to całkiem fajne maszyny w tej cenie, w tym ładne wyświetlacze i wszystko mają czterordzeniowe procesory. Ale ten komputer jest również do użytku w college'u, co moim zdaniem sprawia, że ​​laptopy są atrakcyjne do zabrania go do biblioteki, spotkania z grupami w celu pracy nad projektami itp. Często nawet na laptopach możesz skorzystać z GPU, aby uzyskać dodatkowe (SZYBKO ) rdzenie dla określonych rodzajów obliczeń (z dodatkowym programowaniem) z poziomu Mathematica.
Brett Champion