0
Mam kilka pytań dot. wyboru komputera pod kompilacje programów.
1. Architektura CISC (x86-64) czy RISC (ARM) do kompilacji będzie bardziej efektywna energetycznie?
2. Czy warto się sugerować rozmiarem pamięci cache przy wyborze sprzętu pod kompilację, czy bardziej sugerować się wydajnością na rdzeń?
3. Czy będę potrzebował GPU Nvidii z rdzeniami CUDA czy wystarczy do tego zintegrowana karta graficzna z obsługą OpenCL?
4. Czy można zoptymalizować proces kompilacji kodu napisanego w Rust pod wielowątkowe lub wielordzeniowe procesory?
Wiem, że w przypadku języka C to przy użyciu narzędzi automatyzujących i przyspieszających kompilacje takich jak make jest to możliwe:
Żeby określić liczbę jednostek przetwarzania w zależności czy procesor obsługuje SMT, mogą to być fizyczne rdzenie procesora lub wirtualne w postaci wątków, żeby się upewnić najlepiej wpisać w terminal:
potem można w zależności jaką liczbę jednostek przetwarzania zwróci powyższe polecenie wpisać ją po opcji -j, np. dla 4 jednostek będzie następujące polecenie:
Co do tych wątków to ja bym nazwał to bardziej hybrydowym rozwiązaniem, bo wątki nie są w 100% programowe, do tego co prawda jest potrzebna warstwa abstrakcyjna w postaci systemu operacyjnego ale przede wszystkim chodzi o dodatkowe rejestry w procesorze, w których system operacyjny po rozbiciu procesu na podprocesy "odkłada je" właśnie w tych rejestrach i czekają na wznowienie, aż zostaną wykonane inne ważniejsze zadania na rdzeniu.
https://www.pcmag.com/opinions/intel-dum...good-thing
https://en.wikipedia.org/wiki/Simultaneo...ithreading
Sorry, pomyliłem działy, proszę o przeniesienie wątku do Hyde Park
I uporządkowałem wszystko w tym poście, bo wcześniej było zbyt chaotycznie wszystko napisane.
1. Architektura CISC (x86-64) czy RISC (ARM) do kompilacji będzie bardziej efektywna energetycznie?
2. Czy warto się sugerować rozmiarem pamięci cache przy wyborze sprzętu pod kompilację, czy bardziej sugerować się wydajnością na rdzeń?
3. Czy będę potrzebował GPU Nvidii z rdzeniami CUDA czy wystarczy do tego zintegrowana karta graficzna z obsługą OpenCL?
4. Czy można zoptymalizować proces kompilacji kodu napisanego w Rust pod wielowątkowe lub wielordzeniowe procesory?
Wiem, że w przypadku języka C to przy użyciu narzędzi automatyzujących i przyspieszających kompilacje takich jak make jest to możliwe:
Żeby określić liczbę jednostek przetwarzania w zależności czy procesor obsługuje SMT, mogą to być fizyczne rdzenie procesora lub wirtualne w postaci wątków, żeby się upewnić najlepiej wpisać w terminal:
Kod:
nproc --all
potem można w zależności jaką liczbę jednostek przetwarzania zwróci powyższe polecenie wpisać ją po opcji -j, np. dla 4 jednostek będzie następujące polecenie:
Kod:
make -j 4
Co do tych wątków to ja bym nazwał to bardziej hybrydowym rozwiązaniem, bo wątki nie są w 100% programowe, do tego co prawda jest potrzebna warstwa abstrakcyjna w postaci systemu operacyjnego ale przede wszystkim chodzi o dodatkowe rejestry w procesorze, w których system operacyjny po rozbiciu procesu na podprocesy "odkłada je" właśnie w tych rejestrach i czekają na wznowienie, aż zostaną wykonane inne ważniejsze zadania na rdzeniu.
https://www.pcmag.com/opinions/intel-dum...good-thing
https://en.wikipedia.org/wiki/Simultaneo...ithreading
Sorry, pomyliłem działy, proszę o przeniesienie wątku do Hyde Park
I uporządkowałem wszystko w tym poście, bo wcześniej było zbyt chaotycznie wszystko napisane.