Używany laptop?

0

Tego HP nie mogę znaleźć, znajduje jeden ale tylko z HD.

Podobają mi się te T430s, są bardzo lekkie w porównaniu z innymi, z dyskami ssd i HD+. E430 też wydają się być w porządku. Jedyne mankamenty to słabsze procesory, dwurdzeniowe i5 lub słabsze czterordzeniowe. Domyślam się więc, że im lepszy sprzęt tym większe lapki są?

0

Zastanawia mnie coś - czemu w Dellach E6420 tak często widzę i7 czterordzeniowe skoro to są czteroletnie laptopy?

baltrox01
A to ilość rdzeni maleje z wiekiem, bo nie rozumiem?
0

Mniejsza z tymi rdzeniami - widzę czasami naprawdę dobre i tanie laptopy tylko z wadami, na przykład z takimi user image pęknięciami. Warto kupować taki sprzęt?

KR
Moderator
  • Rejestracja:prawie 21 lat
  • Ostatnio:2 dni
  • Postów:2964
0

Zastanawia mnie coś - czemu w Dellach E6420 tak często widzę i7 czterordzeniowe skoro to są czteroletnie laptopy?

W kwestii architektury CPU niewiele się zmieniło na przestrzeni lat, zwłaszcza od wprowadzenia Sandy Bridge ponad 4 lata temu. Pamiętam, jak ok. 7 lat temu lat temu mówiło się, że w 2015 to wszyscy będą używać procków 20-rdzeniowych i więcej, bo to jedyny sposób aby zwiększyć wydajność, skoro nie daje się zwiększać już częstotliwości zegara. Na razie nic takiego nie nastąpiło i zamiast tego mamy postęp w innych miejscach:

  1. zwiększenie wydajności iGPU. Jeśli na najmocniejszych iGPU (Iris Pro) można obecnie płynnie grać w nowe gry na średnich detalach, to jest to naprawdę niezły postęp, bo kiedyś iGPU nadawały się co najwyżej do painta. iGPU dostały mnóstwo rdzeni. W nowym Iris Pro Skylake mają być podobno 72, w iGPU ze średniej półki jest ich 24. Więc jeśli zastanawiasz się, gdzie się podziały te wszystkie obiecane rdzenie - to są właśnie tam - w GPU.

  2. obniżenie "spalania" tj. zmniejszenie tranzystorów (32 nm -> 14 nm) i coraz lepsze mechanizmy oszczędzania energii (wyłączanie nieużywanych bloków, automatyczna zmiana taktowania, zmiana napięcia zasilającego w zależności od taktowania itp.). Dzięki temu są wydajne laptopy trzymające po 10-15h normalnej pracy na baterii, a nie 3-6h.

  3. drobne usprawnienia w istniejącej architekturze zwiększające nieco IPC, czyli więcej mocy z jednego taktu - zwiększenie przepustowości różnych elementów (np. przesyłanie całych linii cache między poszczególnymi cache'ami, a nie po połowie, więcej linii QPI), dołożenie więcej portów, dołożenie więcej jednostek wykonawczych (np. dodatkowa jednostka przewidywania skoków, dodatkowe potoki load/store w Haswellu).

Nie dodają więcej rdzeni do samego CPU prawdopodobnie (mogę się mylić - po prostu moja opinia) dlatego, że wiele programów, w tym gier, nie umie wykorzystać porządnie nawet 4 rdzeni z HT; a nawet jeśli je wykorzystują, to zwykle wąskim gardłem jest dostęp do współdzielonej pamięci. Po prostu model programowania oparty na współdzielonej, płaskiej pamięci, gdzie każdy może sobie wskaźnikiem latać po wszystkim taki jaki mamy w C, C++ i wielu innych językach kompletnie nie przystaje do tego jak działa sprzęt.

Nawet w serwerach nie stosuje się procków 24 rdzeniowych, tylko wkłada się np. 4 procki 6-rdzeniowe na jedną płytę, gdzie każdy procek ma swój własny kontroler pamięci i własną pamięć, spięte przez QPI. Oczywiście dostęp do pamięci innego procesora kosztuje niemało. Przy czym dziwi mnie to, że od wielu , wielu lat znane jest, że współdzielona pamięć się nie skaluje, a mimo to programiści nadal piszą programy gdzie współdzielą jedną globalną stertę między wątkami, które walczą o dostęp do wspólnych obiektów chronionych blokadami. Za wyjątkiem oczywiście tych szczęściarzy, którzy piszą programy na GPU.

Co ciekawe, niewiele się też zmieniło w kwestii wielkości cache (mój 4 letni laptop ma cache 256 kB/1 MB/6 MB, a nowe stacje robocze w ofercie mają... tyle samo), jeśli nie liczyć cache L4 eDRAM w najmocniejszych prockach Broadwell/Skylake.

edytowany 1x, ostatnio: Krolik
Zobacz pozostały 1 komentarz
KR
Może źle się wyraziłem - nie "płaska" jak "flat vs segmented" a współdzielona i jednorodna. Model zakładający, że jest "jedna wielka pamięć" na której operuje ileś tam wątków, skaluje się strasznie słabo, bo wcześniej czy później dostęp do tej jednej pamięci staje się wąskim gardłem i to nawet nie trzeba do tego nadużywać synchronized, aby nasycić te 10-30 GB/s między CPU a pamięcią.
KR
Testuję teraz program, który na jednym rdzeniu osiąga wydajność przetwarzania danych w okolicach 5 GB/s, dwa rdzenie dają 6 GB/s, przy wszystkich czterech jest ok. 7 GB/s. Nie ma ani jednego locka, chyba że gdzieś pod spodem w czeluściach samego OSa. 90% czasu to czekanie na przesłanie danych w pamięci. 24 rdzenie serio nic by nie pomogły przy takiej architekturze procka.
somekind
Nie nie, ja się nie czepiam o tą "płaską", po prostu pytam, bo nie znam się na tym za bardzo. Piszę głównie w webie, a tu wątkami i pamięcią zarządza serwer www. Ale to, co piszesz brzmi dla mnie trochę tak, jakby programowanie wielowątkowe nie miało sensu.
KR
Raczej bardziej chodzi mi o to, że jakby do obecnych procesorów dołożyć więcej rdzeni np. 24 albo 48, bez jakiś wielkich zmian w architekturze, to przy klasycznym programowaniu wielowątkowym niewiele by te rdzenie dały, poza dodatkową funkcją grzejnika pokojowego.
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:2 minuty
0

Po prostu model programowania oparty na współdzielonej, płaskiej pamięci, gdzie każdy może sobie wskaźnikiem latać po wszystkim taki jaki mamy w C, C++ i wielu innych językach

C nie narzuca ani że pamięć musi być płaska, ani współdzielona, ani nie pozwala „latać wskaźnikiem po wszystkim”.

Za to architektura x64 wręcz wymusza płaski model pamięci, ze względu na brak segmentacji. (podziękować AMD)

Nie rozumiem więc jak to się ma do „nie przystaje do tego jak działa sprzęt”.

KR
Moderator
  • Rejestracja:prawie 21 lat
  • Ostatnio:2 dni
  • Postów:2964
0

C nie narzuca ani że pamięć musi być płaska, ani współdzielona, ani nie pozwala „latać wskaźnikiem po wszystkim”.

Skoro mogę zaalokować kawałek pamięci malloc i przekazać wskaźnik w dowolne miejsce programu np. innego wątku i ten wskaźnik musi być wszędzie ważny aż do wywołania delete, to cóż to jest jak nie płaska pamięć? I dowolny wątek ma dostęp do dowolnego miejsca? Zwykle wszystkie programy mają też jedną globalną stertę, więc nawet nie mam kontroli jaki wskaźnik dostanę od malloc.

A pod spodem procesor się męczy, żeby sprostać wykonaniu programów, które latają wskaźnikami po całej pamięci (przydzielonej programowi). Procesory świetnie udają, że pamięć jest jednorodna i można ją traktować jako jedną wielką tablicę bajtów, wychodząc na przeciw wymaganiom programistów, którzy mają głęboko zakorzeniony ten model programowania. Jednak pod spodem pamięć nie jest jednorodna i serio jest niezły kawał maszynerii w samym CPU i okolicach, który ma udawać taki "wygodny" model pamięci. Płaci się za to m.in. brakiem skalowalności i nieprzewidywalnością wydajności.

Nie rozumiem więc jak to się ma do „nie przystaje do tego jak działa sprzęt”.

Jakby przystawał, to nie trzeba by tworzyć osobnych języków do programowania na GPU, tylko wszyscy by używali C. Ba, domyślam się, że można by sobie wziąć program napisany w C i skompilować na GPU. A jakoś dziwnym trafem tak nie jest. Z kolei procesory nadal są rozwijane pod model programowania z C / C++ / Javy / .NET itp. i nadal marnują masę zasobów na udawanie przed kompilatorem / programistą, że są takim "mocnym jednordzeniowcem" na wzór procków z lat 80-tych.

edytowany 2x, ostatnio: Krolik
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)