WinFuture-Forum.de: Core2duo - Kern Abschalten - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Prozessoren & Speicher
  • 2 Seiten +
  • 1
  • 2

Core2duo - Kern Abschalten


#1 Mitglied ist offline   free 

  • Gruppe: aktive Mitglieder
  • Beiträge: 948
  • Beigetreten: 18. Dezember 04
  • Reputation: 0

geschrieben 21. Mai 2007 - 20:38

Hi,
wie kann ich beim Core2Duo (E6600) einen Kern abschalten? Kann ich das über Bios oder Betriebssystem machen?
Falls übers OS, dann unter Linux
Eingefügtes Bild
0

Anzeige



#2 Mitglied ist offline   Diabolicus 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.323
  • Beigetreten: 05. Januar 07
  • Reputation: 0

geschrieben 21. Mai 2007 - 21:05

Hi

Ich denke nicht das man sowas machen kann.Wieso überhaupt?Macht ja garkein Sinn seine CPU zu "beschneiden".

mfg
Meine Kiste:
Intel Q9400@3,2 Ghz
Asus P5Q Deluxe
4x1GB G.E.I.L DDR2-800
Nvidia Geforce 8800 GTS 512 @810|1050|2010@Arctic Cooling Accelero S1 (aktiv)
Be Quiet Straight Power 600 Watt
mehr Infos-->Eingefügtes Bild
0

#3 Mitglied ist offline   free 

  • Gruppe: aktive Mitglieder
  • Beiträge: 948
  • Beigetreten: 18. Dezember 04
  • Reputation: 0

geschrieben 21. Mai 2007 - 21:16

Mir geht es in dem Fall nicht um Performance. Ich muss ein Programm mit mehreren Threads auf einem Kern laufen lassen. Da spielt mir das Scheduling aber nicht mit :)

Deswegen will ich von Haus aus einen Kern abstellen.

Es geht mit CPU-Affinität, das weiß ich. Nur weiß ich nicht, wie ich das unter Linux zum laufen bringe :)
Eingefügtes Bild
0

#4 Mitglied ist offline   Spoo 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.596
  • Beigetreten: 03. April 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Nämberch

geschrieben 21. Mai 2007 - 22:06

unter XP kannst du mithilfe des Dual Core Patches Anwendungen auf bestimmte Kerne zuweisen so das die nur auf Kern 2 läuft und alles ander auf Kern 1. Wie das bei Linux geht keine Peilung. Darf man fragen welches prog das ist?

Zitat

Ich denke nicht das man sowas machen kann.Wieso überhaupt?Macht ja garkein Sinn seine CPU zu "beschneiden".


doch macht schon sinn um Strom zu sparen aber die C2Ds sind ja schon effizent.

Dieser Beitrag wurde von Spoo bearbeitet: 21. Mai 2007 - 22:07

0

#5 Mitglied ist offline   intoxication 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.763
  • Beigetreten: 26. März 05
  • Reputation: 3
  • Geschlecht:Männlich

geschrieben 21. Mai 2007 - 22:09

kann dsa vll einer ins linux forum verschieben, hier gehts ja eher um software als um hardware.
bei windows gehts ohne probleme über den taskmanager, linux kp..
also die linux leute mal melden :)
seit 20.08 nicht mehr so aktiv
.:| Intel Core 2 Duo E6300 @ 3GHz | Asus P5B-E P965/ICH8R | Mdt 3GB Dual Pc2-6400 | Palit 9600gt 512MB |:.

Eingefügtes Bild
Eingefügtes Bild
0

#6 Mitglied ist offline   free 

  • Gruppe: aktive Mitglieder
  • Beiträge: 948
  • Beigetreten: 18. Dezember 04
  • Reputation: 0

geschrieben 21. Mai 2007 - 22:09

Ich habe das Programm schon fertig unter Linux. Hab ich nicht selber geschrieben. Wenn du mir die Bibliotheken, Funktionen für den Windowskompiler etc. nennst, test ich es gerne da :)
Eingefügtes Bild
0

#7 Mitglied ist offline   DK2000 

  • Gruppe: Administration
  • Beiträge: 19.795
  • Beigetreten: 19. August 04
  • Reputation: 1.434
  • Geschlecht:Männlich
  • Wohnort:Oben auf dem Berg
  • Interessen:Essen, PC, Filme, TV Serien...

geschrieben 21. Mai 2007 - 22:14

Unter Linux wüsste ich da jetzt nichts, geht aber mit sicherheit auch irgendwie.

Unter Windows XP/2003 kannst Du in der boot.ini den Parameter /ONECPU oder /NUMPROC=x an die Startzeile anhängen, damit Windows nur eine CPU bzw. Core verwendet (x = Anzahl der verweneten CPU/Kerne). In Vista geht das auch über bcdedit.

Aber Linux? Gibt da mit Sicherheit auch einen Parameter, dem man dem kernel übergeben kann, damit der nur eine CPU bzw. Kern verwendet, nur kenne ich diesen nicht. Muss mal suchen.

Hier hätte ich was:

nosmp : Tells an SMP kernel to act as a UP kernel.
maxcpus=x : Maximum number of processors that an SMP kernel should make use of

Musst jetzt nur noch herrausfinden, wie Du nosmp bzw. maxcpus= Deinem Kernen übergeben kannst.

Dieser Beitrag wurde von DK2000 bearbeitet: 21. Mai 2007 - 22:25

Ich bin kein Toilettenpapier-Hamster.
---
Ich bin ein kleiner, schnickeldischnuckeliger Tiger aus dem Schwarzwald.
Alle haben mich ganz dolle lila lieb.
0

#8 Mitglied ist offline   free 

  • Gruppe: aktive Mitglieder
  • Beiträge: 948
  • Beigetreten: 18. Dezember 04
  • Reputation: 0

geschrieben 21. Mai 2007 - 22:17

Unter Linux gibts zwei Möglichkeiten:

1: sched_setaffinity()
2. taskset

Doch irgendwie bekomm ich das nicht hin :)

Dieser Beitrag wurde von free bearbeitet: 21. Mai 2007 - 22:23

Eingefügtes Bild
0

#9 Mitglied ist offline   free 

  • Gruppe: aktive Mitglieder
  • Beiträge: 948
  • Beigetreten: 18. Dezember 04
  • Reputation: 0

geschrieben 21. Mai 2007 - 22:36

Ich habs jez mal mit "taskset" probiert
http://www.die.net/d.../taskset.1.html

Allerdings habe ich da was mit erschrecken festgestellt.
Das Prog läuft auf einem Kern schneller, als auf beiden (mit 2 Threads!!!)
Liegt das am Synchronisationsaufwand und Overhead, oder wie ist sich das zu erklären?

Anbei noch der Code

Zitat

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>

volatile int x = 0, y = 0;/* 'volatile' is important! */


pthread_mutex_t x_mutex, y_mutex;


#define ITERATIONS 5000000
/* good value for Athlon 900, eventually adjust for faster/slower processors */
void *thread_routine_0 (void *data)
{
int n;

for (n = 0; n < ITERATIONS; n++) {
pthread_mutex_lock (&x_mutex);
pthread_mutex_lock (&y_mutex);

x++;
y += 2;

pthread_mutex_unlock (&x_mutex);
pthread_mutex_unlock (&y_mutex);
}
return NULL; /* we do not want to return any data */
}

void *thread_routine_1 (void *data)
{
int n;

for (n = 0; n < ITERATIONS; n++) {
pthread_mutex_lock (&x_mutex);
pthread_mutex_lock (&y_mutex);

x++;
y += 2;

pthread_mutex_unlock (&x_mutex);
pthread_mutex_unlock (&y_mutex);
}
return NULL; /* we do not want to return any data */
}

int main () {
pthread_t threads[2];
int n;
/* Init mutexes... */
pthread_mutex_init (&x_mutex, NULL); /* 'NULL' = options (defaults are ok) */
pthread_mutex_init (&y_mutex, NULL); /* 'NULL' = options (defaults are ok) */
/* Create threads */
if (pthread_create (&threads[0], NULL, thread_routine_0, NULL) != 0)
{
puts ("Error creating thread #0!");
exit (3);
}
if (pthread_create (&threads[1], NULL, thread_routine_1, NULL) != 0)
{
puts ("Error creating thread #1!");
exit (3);
}
/* Join the threads (wait until they finished) */
for (n = 0; n < 2; n++)
pthread_join (threads[n], NULL);
/* Cleanup mutexes... */
pthread_mutex_destroy (&x_mutex);
pthread_mutex_destroy (&y_mutex);
/* Print the final values of x and y */
printf ("x = %i, y = %i\n", x, y);
return 0;
}

Eingefügtes Bild
0

#10 Mitglied ist offline   m4rkus 

  • Gruppe: aktive Mitglieder
  • Beiträge: 316
  • Beigetreten: 28. Juni 06
  • Reputation: 0

geschrieben 22. Mai 2007 - 21:42

noramlerweise kann man das doch im bios ausschalten

unter hyper-threading.

gruß,
markus
2*3=4
0

#11 _deen_

  • Gruppe: Gäste

geschrieben 22. Mai 2007 - 21:54

@m4rkus: Ehm, HT war ein bisschen was anderes...

Mir fällt spontan nur folgende Möglichkeit ein:
su
cd /usr/src/linux
make menuconfig
Processor type and features --->
	 [ ] Symmetric multi-processing support (Also Haken raus)
Exit -> Exit -> Save
make
mount /boot
cp arch/$ARCHITEKTUR/boot/bzImage /boot/kernel-$KERNELVERSION-1core
$TEXTEDITOR /boot/grub/grub.conf
Hier dann 'nen neuen Eintrag für den neuen Kernel anlegen. In Grub kannst du dann den Kernel auswählen.

Dieser Beitrag wurde von deen bearbeitet: 22. Mai 2007 - 22:05

0

#12 Mitglied ist offline   bAssI 

  • Gruppe: aktive Mitglieder
  • Beiträge: 930
  • Beigetreten: 21. Mai 03
  • Reputation: 0
  • Wohnort:Dessau

geschrieben 22. Mai 2007 - 22:05

es gibt meines wissens nur 1 board bei dem man einen kern abschalten kann. wobei man aber nicht beeinflussen kann welcher abgeschaltet wird. p5w64 von asus.

hf

es gibt meines wissens nur 1 board bei dem man einen kern abschalten kann. wobei man aber nicht beeinflussen kann welcher abgeschaltet wird. p5w64 von asus.

hf
0

#13 Mitglied ist offline   free 

  • Gruppe: aktive Mitglieder
  • Beiträge: 948
  • Beigetreten: 18. Dezember 04
  • Reputation: 0

geschrieben 22. Mai 2007 - 23:06

Unter Linux geht das mit "taskset"-Befehl
http://www.die.net/d.../taskset.1.html

Dort kann man genau angeben, welche CPUs verwendet werden sollen.
Eingefügtes Bild
0

#14 Mitglied ist offline   m4rkus 

  • Gruppe: aktive Mitglieder
  • Beiträge: 316
  • Beigetreten: 28. Juni 06
  • Reputation: 0

geschrieben 23. Mai 2007 - 15:52

Zitat

@m4rkus: Ehm, HT war ein bisschen was anderes...


nö, jetz ehrlich. das geht bei mir so. hab n p5vd1-x von asus und n pentium d.
Mir is schon klar das ht eigentlich die technik vom p4 is. Warum das da so heißt weiß ich auch ned. aber es funzt.
2*3=4
0

#15 Mitglied ist offline   >axXxs< 

  • Gruppe: aktive Mitglieder
  • Beiträge: 850
  • Beigetreten: 15. November 06
  • Reputation: 0
  • Wohnort:Cloppenburg

geschrieben 23. Mai 2007 - 16:13

Zitat

es gibt meines wissens nur 1 board bei dem man einen kern abschalten kann. wobei man aber nicht beeinflussen kann welcher abgeschaltet wird. p5w64 von asus.


Bei vielen neueren Boards kann man die Kerne ausschalten und auch aussuchen ob Kern 0 oder Kern 1 laufen soll.
0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0