After further investigation, the JVM and the FPU control word are not in
cause. It seams I'm not using GLPK as expected. Within my Java application,
I'm creating one instance of a linear problem (with glp_create_prop) with
col and rows. I solve the problem using glp_intop. According to the
solution, I then create / remove or update columns or rows. Then solve it
again with glp_intopt. I'm doing so multiple times.
In many cases, the behavior observe on Linux or Windows are the same. In
other cases, the behavior is completely different on Windows and solving a
single instance of the problem takes minutes instead of seconds on the same
computer.
To work around this issue, I'm creating a copy of the problem and solve it
as follow:
glp_prob copy = GLPK.glp_create_prob();
try{
GLPK.glp_copy_prob(copy, glpklp.lp, GLPKConstants.GLP_ON);
returns = GLPK.glp_intopt(copy, iocp);
GLPK.glp_copy_prob(glpklp.lp, copy, GLPKConstants.GLP_ON);
} finally {
GLPK.glp_delete_prob(copy);
}
Patrik Dufresne
On Tue, Feb 5, 2013 at 3:23 PM, Patrik Dufresne <[email protected]> wrote:
> Hi all,
>
> Thanks for your comment.
>
> @Nigel Galloway : I've done some test with and without Hypertheading and
> the differences are very little. I do have better performance with
> Hypertheading. The i7 CPU only has 2 cores.
>
> @Andrew: I think the FPU control word might be the problem. I'm running
> GLPK thought a JVM. I've compare the console output between glpsol.exe and
> a call to glp_intopt() for the same problem on the same compute running
> Windows 7 64bits --- the results are different.
>
> See attachments.
>
> When run from Java, it take more time. Up to 120sec. When from from
> glpsol.exe, it take only 4 sec. The problem is available on my dropbox :
> https://www.dropbox.com/sh/ja2myngas5lorow/qS2reVAFcl/assignment20120203-mip-6
>
> Patrik Dufresne
>
>
> On Tue, Feb 5, 2013 at 9:14 AM, Jeffrey Kantor <[email protected]> wrote:
>
>> I know very little about hyperthreading, it's not clear that
>> hyperthreading limits performance of a single threaded app to one-half of a
>> core's performance. According to the various gamer benchmarks,
>> hyperthreading introduces some minor overhead on single threaded apps, but
>> it's not 50% penalty (unless, of course, you have a lot of other
>> computations going on at the same time).
>>
>> Here's a link to benchmarks for single threaded apps
>> http://www.cpubenchmark.net/singleThread.html. What's interesting is
>> that i5's, and even the lowly i3 with a high clock, can outbenchmarks some
>> i7 models. I wonder if this benchmark for single-threaded apps might be a
>> reasonable predictor of glpk performance.
>>
>> Perhaps someone with more expertise could weigh in on this.
>>
>> Jeff
>>
>>
>> On Tue, Feb 5, 2013 at 7:19 AM, Nigel Galloway <
>> [email protected]> wrote:
>>
>>> **
>>> The results may consistent:
>>>
>>> Core i7 is a quad core processor with HyperThreading, so on Windows XP
>>> it will appear as 8 processors each running at 1.6 Ghz. GLPK can only use
>>> one of these processors so only 12.5% of max.
>>>
>>> Core i5 is dual core with HyperThreading. HyperThreading helps Windows'
>>> threading model but does nothing for Linux. You may find that your Linux
>>> has turned it off. So the i5 looks like 2 porcessors each running at 2.6
>>> Ghz. GLPK can use 50% of this configuration.
>>>
>>> You may be able to turn off the HyperThreading on the i7 by changing
>>> your BIOS settings. GLPK will then be able to use 25% of max.
>>>
>>> --
>>> Nigel Galloway
>>> [email protected]
>>>
>>>
>>> On Fri, Feb 1, 2013, at 08:15 AM, Reginald Beardsley wrote:
>>>
>>> Looking at the descriptions I think you're thrashing. Add more memory
>>> to system 1, unless of course there's a typo and that should read "32GiB"
>>> instead of "3GiB"
>>>
>>> --- On *Fri, 2/1/13, Patrik Dufresne <[email protected]>* wrote:
>>>
>>>
>>> From: Patrik Dufresne <[email protected]>
>>> Subject: Re: [Help-glpk] Performance decrease with more powerful computer
>>> To: "Reginald Beardsley" <[email protected]>
>>> Cc: "glpk" <[email protected]>
>>> Date: Friday, February 1, 2013, 9:49 AM
>>>
>>> Hi Reginald,
>>>
>>> Here are the hardware specs i'm comparing.
>>>
>>> System 1
>>> Windows XP SP2
>>> Intel Core i5 650 @ 3.20GHz 4 MB Cache3GiB DDR3 1066/1333CPU mark
>>> (according to cpubenchmark.net) : 3154
>>> Total computation time : 331 sec
>>>
>>> System 2
>>> Windows XP SP2, Windows 7 64bits, Debian 64bits
>>> Core i7 CPU M 620 @ 2.67GHz 4M Cache4GiB DDR3 1066CPU mark (according
>>> to cpubenchmark.net) : 2718
>>> Total computation time : 114 secs
>>>
>>> System 3
>>> Windows XP SP2, Debian 64bits
>>> *Core 2 Duo CPU E6550 @ 2.33GHz **4 MB** Cache L2*4GiB DDR2 800CPU mark
>>> (according to cpubenchmark.net) : 1493
>>> Total computation time : 172 secs
>>>
>>> I didn't run the benchmark on the computer it self, but the different
>>> between the number is big enough to expect better performance from System
>>> no 1 then System no 3. The total computation time of the problem on
>>> different platform for the same computer are almost identical. (less then
>>> 0.5 sec different). It's safe to assume the platform doesn't have any
>>> impact on the performance.
>>>
>>> I'm using GLPK 4.47 on every platform. On Linux, I did compile it from
>>> source with default flags. For Windows, I pick the pre-compiled version
>>> provided by winglpk project.
>>>
>>> To solve the problem, I need to run GLPK multiple time sequentially. I
>>> may provide dump of every instance of the problem.
>>>
>>> Patrik Dufresne
>>>
>>> On Fri, Feb 1, 2013 at 10:23 AM, Reginald Beardsley <[email protected]
>>> > wrote:
>>>
>>> Could you provide a few details?
>>>
>>> System configurations you're comparing? GLPK version? Compile time
>>> options specified?
>>>
>>> There are a huge number of possibilities. Why do you think the computer
>>> is "more powerful"?
>>>
>>> Reg
>>>
>>>
>>>
>>> --- On *Fri, 2/1/13, Patrik Dufresne <[email protected]>* wrote:
>>>
>>>
>>> From: Patrik Dufresne <[email protected]>
>>> Subject: [Help-glpk] Performance decrease with more powerful computer
>>> To: "GLPK help" <[email protected]>
>>> Date: Friday, February 1, 2013, 8:56 AM
>>>
>>>
>>> Hi,
>>>
>>> I'm using GLPK in one project and the time taken to compute is longer on
>>> a more powerful computer. Does it make any sense to you ?
>>>
>>> I don't have any clues about how to debug it. I would really appreciate
>>> tips to diagnose the problem.
>>>
>>> Patrik Dufresne
>>> -----Inline Attachment Follows-----
>>>
>>> _______________________________________________
>>> Help-glpk mailing list
>>> [email protected] <http://mc/[email protected]>
>>> https://lists.gnu.org/mailman/listinfo/help-glpk
>>>
>>>
>>> _______________________________________________
>>> Help-glpk mailing list
>>> [email protected]
>>> https://lists.gnu.org/mailman/listinfo/help-glpk
>>>
>>> *_______________________________________________*
>>> Help-glpk mailing list
>>> [email protected]
>>> https://lists.gnu.org/mailman/listinfo/help-glpk
>>>
>>> -- http://www.fastmail.fm - A fast, anti-spam email service.
>>>
>>>
>>> _______________________________________________
>>> Help-glpk mailing list
>>> [email protected]
>>> https://lists.gnu.org/mailman/listinfo/help-glpk
>>>
>>>
>>
>> _______________________________________________
>> Help-glpk mailing list
>> [email protected]
>> https://lists.gnu.org/mailman/listinfo/help-glpk
>>
>>
>
_______________________________________________
Help-glpk mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-glpk