Re: Multithreading für FOR-Schleife



The Pianoman schrieb:
>>wo genau ist der zusammenhang zwischen Anzahl CPUs und Anzahl Threads.

Bei mir unter Linux 2.6.13.4 (1 CPU, Hyperthreading):

public class Test {
public static void main(String[] args) {
System.out.println(Runtime.getRuntime().availableProcessors());
}
}

--> 2


>>auf jeder CPU wirklich gleichzeitig ein Thread
> Guter Einwand. Sinnigerweise sollte das die VM garantieren - ob sie
> es tut, ist wieder eine andere Geschichte.

Die VM kann es nicht garantieren. Unter Windows ist es AFAIK möglich,
einen Thread/Prozess explizit einer bestimmten CPU zuzuweisen. Unter
Linux geht das nicht, der Kernel gibt den Prozessen keine Möglichkeit,
bei der Aufteilung der CPUs mitzureden. Der Scheduler macht das auch
völlig alleine recht schlau (er versucht, Prozessen immer dieselbe CPU
zuzuweisen, damit Caches etc. der einzelnen CPUs auch greifen können).
Neuere Kernels wissen auch, dass das mit SMT (Symmetric Multi Threading
== Hyperthreading ohne Marketing-Blubber) wiederum keine Rolle spielt
und handeln entsprechend.

Noch ein anderer Punkt: Ich wollte eine SMT-CPU einerseits schon wegen
Java, weil Java-Applikationen Prinzip-bedingt häufig massiv Multithrea-
ding einsetzen, aber ich schätze es vor allem auch, weil Dinge, die im
Hintergrund ablaufen (z.B. der Spamfilter, der alle 5min im Hintergrund
10 Mails bearbeiten muss ;) meine "vordergründigen" Aktionen viel weni-
ger beeinflussen. Woher willst du wissen, dass die CPUs nicht gerade
mit etwas anderem beschäftigt sind?


> Also: was tun?

Ich würde einfach nur darauf achten, immer schön mit Multi-Threading zu
arbeiten und mir ansonsten nicht den Kopf darüber zerbrechen, der Ker-
nel macht den Rest.

Gruss,
Raffi

--
Come to think of it, there are already a million monkeys on a million
typewriters, and Usenet is *nothing* like Shakespeare!

herzog@xxxxxxxxxx · PGP Key 5D1FF5F4 · http://www.raffael.ch/
.



Relevant Pages

  • Re: Hyperthreading
    ... if I am running two CPU ... Yes Linux will take advantage of hpyerthreading, ... weather hyperthreading actually speeds up the system or slows it down. ... also hyper threading is NOT good at dealing with 2 intensive processes, ...
    (alt.os.linux.suse)
  • Re: How useful is Hyper-Threading for average user?
    ... Hyperthreading can ... >> sounds like HT is equivalent to a dual CPU on a single chip. ... >> certainly worth the small extra price. ... I believe the HT code for Linux was written by Intel, ...
    (comp.os.linux.hardware)
  • Re: MySQL Server: Bringt ein Dualprozessor Vorteile?
    ... also ich bin nicht der Linux Guru. ... Bei der einen l?uft die CPU fast die gesamte ... Vom benutzten Swap Speicher wird bei Top nur so 1500 K ... Es ist ja nur eine Anfrage, d.h. ein Thread. ...
    (de.comp.datenbanken.mysql)
  • Re: Multi Threading --- processes
    ... > Is there a possibility to assign a process to a specific CPU? ... This is a good intro to smp affinity on Linux: ... smp boxes and hyperthreading has added to the complexities. ...
    (comp.os.linux)
  • Cannot get Hyperthreading working on Asus P4PE-X
    ... Everything I can find suggests that it should support hyperthreading but ... According to the intel site the specific model of CPU and the chipset ... Intel machine check architecture supported. ...
    (Linux-Kernel)