Java – Why aren’t multithreaded Java programs faster on ‘super’ Linux servers than laptop Win7?

Why aren’t multithreaded Java programs faster on ‘super’ Linux servers than laptop Win7?… here is a solution to the problem.

Why aren’t multithreaded Java programs faster on ‘super’ Linux servers than laptop Win7?

Introduction

So far, I’ve been developing a piece of software and I’m now testing it to understand the benefits of concurrency. I’m testing the same software with two different systems :

  • System 1: 2 x Intel(R) Xeon(R) CPU E5-2665 @ 2.40GHz with
    A total of 16 cores with 64GB of RAM running on
    Scientific LINUX 6.1 and JAVA SE runtime environments (builds
    1.7.0_11-b21).
  • System 2 Lenovo Thinkpad T410 and Intel i5
    Processor @ 2.67GHz, 4 cores, 4GB RAM, running Windows 7 64-bit
    AND THE JAVA SE RUNTIME ENVIRONMENT (BUILD 1.7.0_11-B21).

Details: The procedure simulates a person with type 1 diabetes. It performs some imports (reading from csv), some numerical calculations (Dopri54 + newton), and some exports (writing to csv).

I have exclusive rights to the server, so there shouldn’t be any noise.

Result
These are my results:

S1

S2

Now you can see that System 1 is as fast as System 2, although it is a very powerful machine. I don’t know why this is – and I believe the system is the same. The number of threads is from 10 to 100.

Question:

Why is the execution time similar between the two runs, even though System 1 is much more powerful than System 2?

Update!

Now, I’m just thinking about what you guys call the I/O memory problem. So, I think if I can reduce the file size, it will speed up the program, right? I managed to reduce the size of the import file by 5x, however, the performance did not improve in the slightest. Do you still think this is the same problem?

Solution

When you write to a .csv file, the bottleneck may not be your computing power, but the write rate on your hard drive.

Related Problems and Solutions