Hello Dennis,
could you also send us the query (or a SSCCE) as well? In many cases, queries are not bound by the CPU, but are rather IO-bound. In this case, distributing the load to multiple cores might in fact decrease performance, as the disk might have to be accessed at different random locations. Even when using an SSD, this might slow down the execution considerably. Also, the application has to do context swichting to use a different hread, so this decreases performance as well and might outweight the benfit of parallelized computation. It very much depends on your quers. You can take a look e.g. by using a tool like visualvm and analyze where most of the time during execution is spend. Also, you should update your BaseX version, 7.7 is outdated for quite some time now and we have done major improvements since then.
I am too lazy to write in German as well, I hope thats fine.
Aber trotzdem die besten Grüße an die andere Seite des Bodensees wünschend, Dirk
On 07/23/2015 02:12 PM, Dennis Wiest wrote:
Hallo,
ich habe eine Verständnisfrage bezüglich der Option „Parallel“.
Ich wollte mir einen Überblick über die Geschwindigkeit von BaseX machen bezüglich mehrerer Benutzeranfragen.
Ich verwende Basex 7.7.
Ich habe mir ein Java Programm mit Multithreads geschrieben, welches das ganze simuliert.
Das Script funktioniert soweit auch und es werden mir im BaseX die Session für jeden Benutzer angezeigt.
Als erstes hab ich Parallel auf 20 gesetzt.
Mir ist dabei aufgefallen das es pro Benutzer immer langsamer wird und die CPU-Auslastung nicht wirklich hoch ist. Wird das ganze gar nicht Parallel abgearbeitet ? Verteilt BaseX die Last nicht auf die CPU´s??
Danach hab ich Parallel auf 1 gesetzt.
Das Ergebnis ist schneller als Parallel 20, das dürfte bei einer sequenziellen Abarbeitung nicht sein oder ??
Das ganze System läuft auf einem HP Server mit 64 GB Arbeitsspeicher einer PCI SSD Festplatte und einem Intel Xeon E5-2690 8-Core 2.90 GHz Prozessor.
Könnt ihr mir da vielleicht eine Erklärung liefern ?
Ich hab das ganze nochmal in Englisch geschrieben.
Vielen dank
Gruß Dennis Wiest
Hello There,
I have a question concerning the understanding of "parallel" option. I wanted to make an overview of the speed of BaseX regarding several user requests.
I use Basex 7.7. I have a Java program written with multi-threads, to simulating this. The script works well so far and the session for each user are displayed in BaseX.
First I set “parallel” to 20. I've noticed that it is getting slower for each user and the CPU utilization is not really high. Will not parallel processed? Distributes the load on the CPU not BaseX ??
Then I got the same and set “parallel” to 1. The result is faster than parallel 20, that should not be in a sequential processing or ??
The whole system runs on an HP server with 64GB of RAM PCI SSD hard drive and an Intel Xeon E5-2690 8-core 2.90 GHz processor.
Can you provide an explanation as me, maybe?
I have the whole again written in English.
many thanks
Greeting Dennis Wiest
Avitech GmbH Principal Office: Bahnhofplatz 1 | 88045 Friedrichshafen | Germany Court Registration: Amtsgericht Ulm | HRB 728293 Geschäftsführer/Managing Director: Antonio Maria Gonzalez Gorostiza VAT No.: DE223719716 http://avitech.aero