Ubuntu: Brug begge processorer
Jeg har en Zepto 2425W med en Intel Core Duo Processor T2500.
Jeg har lavet et lille c-program som kører en rekursiv fibonacci:
Den finder det 10. fibonacci tal. Hvis jeg f.eks. ændrer til 50 tager det rimelig langtid at regne det, og jeg kan her se under "System monitor" kun bliver brugt én processor. Hvorfor bliver begge ikke brugt til at regne? Er det ikke muligt at få dem til det?
Jeg har lavet et lille c-program som kører en rekursiv fibonacci:
#include
#include
main() {
(void) printf("Test: %lu\n", fibo(10));
return(0);
}
fibo(n) long int n; {
if (n==0)
return 0;
else if (n==1)
return 1;
else
return fibo(n-1)+fibo(n-2);
}
Den finder det 10. fibonacci tal. Hvis jeg f.eks. ændrer til 50 tager det rimelig langtid at regne det, og jeg kan her se under "System monitor" kun bliver brugt én processor. Hvorfor bliver begge ikke brugt til at regne? Er det ikke muligt at få dem til det?
Kommentarer35
Re: Ubuntu: Brug begge processorer
Re: Ubuntu: Brug begge processorer
F.eks kan du huske alle tal du har regnet ud, gemme dem i en tabel, og ikke regne dem ud igen hvis du allerede har regnet det. Så vil du få mere hastighed, en at smide nok så mange dualcore efter programmet ;)
Du kan også prøve at finde et funktionsprogrammeringssprog, al'a Haskell. Så klarer compileren det hele for dig.
Der er tonsvis af metoder til at lave programmet multitrådet. Du kan kigge på openmp som er en compiler udvidelse til c++. Den gør det nemt at få ting til at køre med flere kerner og delt ram (som er det du har med at gøre).
lean3 >>
Jeg er udemærket
Jeg er udemærket klar over, at det er en rigtig dårlig måde at beregne det på. Men jeg forsøger at skrive et lille program som jeg vil kunne køre på min PS3 til sammenligning med min laptop, for at teste dens regnekraft! Derfor spiller det ingen rolle, at det er en håbløs måde at bestemme det på!
Men jeg bør altså skrive det i C++ istedet for C, da det er nemmere at lave multithreads der?
Re: Ubuntu: Brug begge processorer
EDIT: Men du kan jo lave to versioner - en der regner fra 0 til fem og en fra seks til ti og starte de to programmer samtidig. Så vil begge kerner automatisk blive benyttet.
Re: Ubuntu: Brug begge processorer
Du compiler det med g++ -fopenmp
#include
#include
#include
long int fibo(long int n) {
if (n==0)
return 0;
else if (n==1)
return 1;
else
return fibo(n-1)+fibo(n-2);
}
main() {
int start = 50;
int resultat = 0;
#pragma omp parallel sections
{
#pragma omp section
resultat += fibo(start - 2);
#pragma omp section
resultat += fibo(start - 1);
}
(void) printf("Test: %lu\n", resultat);
return(0);
}
Du mener -openmå, ikke?
Jeg
Jeg kører dette:
>> g++ -openmp fib.cpp
fib.cpp:3:17: error: omp.h: No such file or directory
Re: Ubuntu: Brug begge processorer
Hvilken version af g++ har du?
Jeg tror at f'et står for feature.
Re: Ubuntu: Brug begge processorer
Jeg får dette svar:
<< g++ -fopenmp fib.cpp
cc1plus: error: unrecognized command line option "-fopenmp"
Re: Ubuntu: Brug begge processorer
Re: Ubuntu: Brug begge processorer
Re: Ubuntu: Brug begge processorer
http://packages.ubuntu.com/gutsy/devel/g++-4.2
#12 nåh ok, regnede med han havde undersøgt den mulighed :)
Bare skriv sudo apt-get
sudo apt-get install g++-4.2
Bagefter kører du
sudo ln -s /usr/bin/g++-4,2 /usr/bin/g++
Alternativt kan du køre g++-4,2 direkte
g++-4,2 -fopenmp fib.cpp
/* EDIT - jeg vil være #12 */
Re: Ubuntu: Brug begge processorer
g++ -fno-openmp fib.cppThe program 'g++' can be found in the following packages:
* g++
* pentium-builder
Try: sudo apt-get install
bash: g++: command not found
Re: Ubuntu: Brug begge processorer
Mit spørgsmål er nu, om det er nok at uddele det til 2 tråde hvis det skal testes på PS3? Har den ikke mere end to processorer?
#14 Jo den har 8.
Men du kan
Men du kan kun bruge de 6.
2 af dem er reserveret til andet.
http://en.wikipedia.org/wiki/PlayStation_3#Operating_system
Var det ikke noget med at der skulle ikke så mange PS3 maskiner til i cluster før den kom på top500?
Et billed af en Ps3 cluster setup
http://www.wired.com/techbiz/it/news/2007/10/ps3_supercomputer
Re: Ubuntu: Brug begge processorer
Hvordan installerer jeg G++ 4.2 på debian?
Re: Ubuntu: Brug begge processorer
Repo?
Re: Ubuntu: Brug begge processorer
Når jeg skriver:;
apt-get
apt-get install g++-4.2
får jeg at vide, at pakken ikke findes?
#19
Og hvad gør man så for
Og hvad gør man så for at installere den?
Re: Ubuntu: Brug begge processorer
F.eks. kan man hurtigt finde http://forums.spry.com/showthread.php?t=620 via google når man søger.
Re: Ubuntu: Brug begge processorer
Den finder ikke på min debian. Hvor ligger den så?
Re: Ubuntu: Brug begge processorer
# deb http://debian.uni-essen.de/debian/ etch main
# deb http://ps3.keshi.org/debian ./
deb http://debian.uni-essen.de/debian/ etch main
deb-src http://debian.uni-essen.de/debian/ etch main
deb http://security.debian.org/ etch/updates main
deb-src http://security.debian.org/ etch/updates main
Hvordan skal en se ud, for at få testing med?
Re: Ubuntu: Brug begge processorer
Det viser sig dog, at min laptop er 3m51.038s om at finde fib50, mens PS3 er meget længere om det - afbrød da det tog for lang tid! Hvordan kan jeg teste, om debian kan køre multithread? Altså om den kan bruge alle processorerne!
Re: Ubuntu: Brug begge processorer
Du skal huske på at den version jeg lavede kun er til to cpu'er. Kan du rette den til 6, så du får fuld udnyttelse?
Du kan også prøve at finde og downloade IBM's compiler (det er dem der laver Cell chippen i PS3). Den hedder xlc og er hurtigere end g++.
Re: Ubuntu: Brug begge processorer
Hvor i top kan jeg se, hvor mange af processorerne der bliver brugt?
Cpu(s): 8.5%us, 3.3%sy, 0.0%ni, 88.2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Re: Ubuntu: Brug begge processorer
Det er nemt at se i GNOME under "system monitor" - men jeg har ikke gnome installeret på min debian. Håber der er nogen der kan hjælpe mig!
Re: Ubuntu: Brug begge processorer
Jeg vil gætte på at den g++ 4.2 du har fat i, ikke kan compile til CELL. Det er bare et gæt.
Prøv at bruge IBM's xlc. Den er ikke open source, men lavet til formålet. Så det er en god test for at se om der er hul igennem.
Re: Ubuntu: Brug begge processorer
dennis-ps3:/home/dennis# xlc -c fib.cpp
xlc[m] Copyright 2001-2004 by S. Fuchs [http://linecontrol.srf.ch/]
Licensed under the GPL, see file LICENSE of the distribution package.
version: 1.0.6
Gtk-WARNING **: cannot open display:
Gør jeg det forkert?
Re: Ubuntu: Brug begge processorer
Tjek evt. wiki - der er oplyst 7 spe'er under ps3 og 8 under cell - derfor er den i forvejen modregnet under ps3 opslaget :P
*Edit*
Og nå ja, når man kører linux har man så kun 6 tilbage, da ps3'ens eget styresystem kører i bagrunden :(
Re: Ubuntu: Brug begge processorer
Re: Ubuntu: Brug begge processorer
Re: Ubuntu: Brug begge processorer
Gtk-WARNING **: cannot open display:
Men synes ikke jeg får noget jeg kan bruge :(
Re: Ubuntu: Brug begge processorer
Da xlc ikke er open source eller gratis, kan du downloade en trial herfra. Du skal først registrere dig.
http://www14.software.ibm.com/webapp/download/preconfig.jsp?id=2007-10-…
Og hvad er det for noget med at spørge på andre forums. Jeg sagde at du skulle undersøge fejlen, dvs læse output og søge på google, ikke få andre til det :O
Ej, fint gåpåmod der, håber det lykkes at få dem til at spille på den ene eller anden måde.