Hur Många CPU-kärnor Räcker för Programmering på Linux?

Permalänk
Medlem

Hur Många CPU-kärnor Räcker för Programmering på Linux?

Hej,

Jag har tidigare frågat om råd för köp av en AMD-laptop.

Nu undrar jag (efter att ha sökt runt en hel del utan att ha fått några bra svar) hur många CPU-kärnor behövs egentligen för en bra programmeringsupplevelse på Linux?

Den laptop som jag blev tipsad om tidigare har hoppat utanför min prisklass. Räcker 4 kärnor långt eller bör jag spara till något med 6 eller 8 kärnor? Jag vet att 16 GB RAM är ett måste nuförtiden (per min högskolas kurser).

Permalänk
Medlem

Programmering av vad? Jag bara tänker programmering som textkod eller webläsare och det kan du väl göra på en dator med minimumspec för tex ubuntu. Eller är det grafiskt såsom Unity / Unreal?

2 GHz dual core processor
4 GiB RAM (system memory)
25 GB of hard drive space (or USB stick, memory card or external drive but see LiveCD for an alternative approach)
VGA capable of 1024×768 screen resolution
Either a CD/DVD drive or a USB port for the installer media
Internet access is helpful
Recommended: 3D Acceleration Capable Videocard with at least 256 MB

Permalänk
Sötast

Beror helt på vad du skall göra.
Skriva kod kan du göra på papper eller miniräknare om det behövs. Att skriva kan du också göra som ovan sagt på en minimispec dator. Det som ökar kraven är förkortade kompileringstider samt om du behöver köra specifik mjukvara som har högre krav.

Permalänk
Medlem
Skrivet av Sh4d0wfi3nd:

Programmering av vad? Jag bara tänker programmering som textkod eller webläsare och det kan du väl göra på en dator med minimumspec för tex ubuntu. Eller är det grafiskt såsom Unity / Unreal?

2 GHz dual core processor
4 GiB RAM (system memory)
25 GB of hard drive space (or USB stick, memory card or external drive but see LiveCD for an alternative approach)
VGA capable of 1024×768 screen resolution
Either a CD/DVD drive or a USB port for the installer media
Internet access is helpful
Recommended: 3D Acceleration Capable Videocard with at least 256 MB

Skrivet av Allexz:

Beror helt på vad du skall göra.
Skriva kod kan du göra på papper eller miniräknare om det behövs. Att skriva kan du också göra som ovan sagt på en minimispec dator. Det som ökar kraven är förkortade kompileringstider samt om du behöver köra specifik mjukvara som har högre krav.

Javautveckling med IntelliJ och Pythonutveckling med VS Code. Tänker köra Ubuntu 22.04 LTS.

Permalänk
Medlem
Skrivet av Apollo11:

Javautveckling med IntelliJ och Pythonutveckling med VS Code. Tänker köra Ubuntu 22.04 LTS.

Jag gjorde något liknande på en 486 dx2 66Mhz med 4MB ram, det gick lite segt, men herre jävlar när jag stoppade in 8MB ram. Visst du kör lite nyare version av java och utvecklingsmiljön så en 486a DX4 100MHz då j-vlar..

Skämt åsido, du kan köra på precis vad som helst som fungerar för vanligt kontorsjobb. Självklart måste du ha ssd om din fritid inte är gratis, sedan i windows världen så 16GB är det man bör ha för att slippa problem. Allt frid och fröjd tills man ser priset på laptops och då kanske man får nöja sig med 8GB om man är student.

När du pratar om så många kärnor som du gör så menar du väl desktop? Köp då en dator som du kan lira spel på och den kommer fixa grunderna i java.

Sedan det finns allt java applikationer som går segt, jag själv skulle nästan påstå alla javaapplikationer går segt i windows. Men krävande appar som kräver någon speciell kraftfull dator är inget du kommer göra i utbildningen. Nu vet jag inte vad du läser, och det finns studenter som jobbar med Ai etc. Men då borde du istället prata om dator för detta än grundläggande java.

*edit*
Jag tycker en bättre fråga är. Jag tänker t.ex. läsa Datateknik på Chalmers/KTH, vilken specifikation på laptopen behöver jag?
Jag skulle då säga en +4 kärnig laptop med 16GB ram, uppgraderingsbar till 32GB plus 500GB ssd är en bra nivå. Argument som att jag kan få göra ett krävande exjobb så brukar man få låna laptop vid dessa fall. Jag har aldrig i min karriär ens sett exjobbare få använda egen datorutrustning på arbetsplatsen.

Permalänk
Medlem

Tror inte det är jättevanligt att programmera på linux.

Oftast använder man t.ex. Ubuntu för backend saker. T.ex. mysql, apache/nginx, kubernetes, gitlab. Dvs tjänster som körs på burken/servern.

Aldrig testat linuxdistar med GUI, och vet inte vilket stöd som finns där heller för kompilatorer osv.

Men det kanske fungerar minst lika bra

Tror 4 cores räcker.

edit:
"Javautveckling med IntelliJ"
körde Android studio på en 4 kärnig mac mini (4 gen). Gick väldigt långsamt jämfört mot min Ryzen 1700.

Permalänk
Medlem

Det är jättevanligt att programmera på Linux, det är så det har blivit till, men om du menar Windows programmering? Ja, det också, VS Studio finns till Linux och Linux finns dessutom i Windows 11(Ubuntu). Själv har jag bara hållit på med Android studio i någon vidare utsträckning, på den tiden körde jag Windows och Ubuntu i VM(nu går det att köra *nästan* native i Windows 11) med en i7 6700K och 16GB RAM. Det räckte för att kompilera en hel Android dist för tex Samsung Galaxy S5 på typ 30-40 minuter då pratar vi enorma mängder kod. För att skriva och kompilera enstaka program skulle man klara sig med en potatis, nästan. Det som drar kraft är utvecklingmiljön och OS, ett fancy IDE drar mycket minne så tänker man inte sitta och skriva kod i notepad är det bra med mycket minne.

Men med dagens standard, en fyrkärnig CPU drar runt alla OS idag, räcker helt klart. Gärna 16-32GB minne för att slippa swap till hårddisken och om det swappar gärna en M.2 NVMe drive. Bra med mycket utrymme om man skall ha många containers, så 512GB-1TB om möjligt.

Men svar på frågan, antal kärnor över fyra inte särskilt viktigt, mycket minne och bra systemdisk är viktigare.

Permalänk
Datavetare

Programmering är något man med fördel gör just på Linux.

På förra jobbet hade vi officiellt stöd för Windows och Linux till utvecklingsmiljön (produkten var ett realtids OS där hela systemet byggdes på endera Windows eller Linux). När man började komma upp i riktigt stora projekt var prestanda väsentligt bättre under Linux, framförallt kompileringsprestanda.

Egentligen lite märkligt då det ju faktiskt byggdes exakt samma saker oavsett om man körde Windows eller Linux, slutresultatet var ju till realtids OS:et. Toolchain var primärt LLVM baserad (en C/C++ kompilator som har officiellt stöd i Visual Studio på Windows, är standard kompilator på MacOS och har utmärkt stöd under Linux där annars GCC är mer vanligt).

På Windows + Visual Studio skulle jag nog inte vilja sitta på min gamla 2-kärniga Surface Pro 4 längre, men då den har 16 GB RAM fungerar den fortfarande helt OK till surf och enklare programmeringsprojekt i Visual Studio Code.

Skriver detta på min enda Linux-laptop, den har en i7-5600U, d.v.s. en 2-kärnig Broadwell CPU från 2014! Men då datorn har SSD + 16 GB RAM fungerar den fortfarande utmärkt till surf och helt klart även till enklare programmeringsuppgifter. Skulle inte vilja dra runt .NET projekt i Visual Studio eller Java projekt med Eclipse, men Python, Go, Node.JS och små .NET core, små C++ projekt går hur bra som helst.

VS Code är definitivt inte i närheten lika snabbt på en i7-5600U som på en modern desktop Intel/AMD eller en M1 Mac, det finns ett märkbart lagg (som enbart beror på låg prestanda per kärna, VS Code är i praktiken enkeltrådat).

Kör för närvarande Ubuntu 22.04.

Edit: ska kanske förtydliga, ju färre kärnor man har ju viktigare är det att ha riktigt snabba kärnor. Även om det "går att använda" en i7-5600U med Ubuntu 22.04 än idag så är det ett klart kännbart lagg när man scrollar på webbsidor och t.ex. kontext-sökningar är inte alls lika snabba i VS Code som på en modern dator. Allt detta är dock saker som inte hade gått snabbare även om i7-5600U haft 16 kärnor!!!

Så i första hand ska du hitta en dator med så hög prestanda per kärna som möjligt, 4 och till och med 2 kärnor räcker än idag om det är tillräckligt snabbare kärnor!

Permalänk
Medlem

Min gamla laptop från 2016 känns fortfarande rapp, den har bara två kärnor. Men det är hyffsat starka Kaby Lake kärnor(i7 7500U) och som klarar att boosta till 3.5GHz relativt länge inte bara nån sekund, hyperthreading hjälper men framförallt att den har 16GB RAM i dubbla kanaler med låga latenser och en snabb M.2 NVMe som systemdisk. Laggar faktiskt inte på något alls som inte är jättetungt, kör senaste Windows 11 på den utan problem.

Permalänk
Medlem

Om du vill se hur varje kärna arbetar är nog 4 minimum. Programmering i C, C++ och Fortran använder OpenMP.
Java, Python och Golang har egna metoder att köra alla kärnor.

Permalänk
Medlem

Intressant. Aldrig varit på ett jobb där Linux är "något man med fördel programmerar på". Vi kör Windowsmiljö och det har det alltid varit på dom jobb jag varit på. Nu är dock programmering något jag höll på med för rätt längesedan(inom jobb), men kör i stället som Devops idag.

Som svar på frågan tror jag 4 minst för att få en behaglig upplevelse...
Sen inom programmet, så se till att skapa threads när det behövs så att programmet kan köra uträkningar från olika "ställen" samtidigt(om det går).

Då blir det bra

Permalänk
Medlem

Det som spelar roll är hur många filer du ska kompilera och hur lång tid du kan vänta. Det låter inte som att du arbetar i stora projekt, så... Alla maskiner nyare än 10år går hur bra som helst att lösa dina problem.
Jag satt länge med en c2d (su7200). Nu använder jag en Lenovo e480 (i5) privat och nån HP (i7). Allt handlar, som sagt, om väntetid och vad annat än kompilering som ska göras samtidigt