[Symphony] Symphony in a shared-memory architecture on Windows

Ted Ralphs ted at lehigh.edu
Sat Jan 15 18:55:19 EST 2011


As I understand what you're saying, you are using OpenMP to
parallelize that outer loop, so that SYMPHONY itself is being run
sequentially, but the loop is being run in parallel, which means you
would have multiple MILPs being solved simultaneously. There are a
number of reasons why this might not work, but the most obvious is
that you are using the same SYMPHONY environment for all of your
calls. In this case, the different parallel calls to SYMPHONY would be
in conflict, since they would ball be trying to access the same data
structures. If you create a new SYMPHONY environment for each call,
what you are doing should work. Alternatively, if you build SYMPHONY
itself with OpenMP enabled, then SYMPHONY itself will run in parallel.
This may be a better option if the sequence of MILPs you are solving
is related, as you can then warm start the computation without setting
up a new SYMPHONY environment in a new memory space in each iteration
of the loop. In the latter case, you would not be able to parallelize
your outer, as I understand you're currently doing.

Cheers,

Ted

On Fri, Jan 14, 2011 at 4:38 AM, Aiko Vogelsang <aikovogelsang at gmx.de> wrote:
> Hello everybody,
>
>
>
> I have some questions concerning the usage Symphony (5.3.1) in a parallel
> environment in Visual Studio 2008 Pro.
>
>
>
> In my program there are some calculations done. Within each of these loops
> Symphony is called to solve a MILP. To build up the MILP-model in every loop
> I use the methods of CoinModel.
>
> If I run my code in a sequential mode everything works fine.
>
> But running the program in a shared-memory environment by integrating OpenMP
> commands around the loop causes failures. Unfortunately I get heap
> corruption errors in these cases. Concerning this problem I found in the
> Symphony 5.2.3 manual that the solver runs on Windows systems only in a
> sequential mode. Is this also effective for the latest versions of Symphony?
>
> In the same manual there's a hint that it should be easy to run Symphony in
> parallel on Windows systems if PVM will work. I thought that PVM is needed
> for distributed architectures or do I need it for my case?
>
>
>
> Furthermore, I'm wondering because I only separate the "main" loop into
> pieces and not the Symphony calculations. According to my understanding
> they're still done in a sequential mode (one Symphony instance for every
> processor core) or am I wrong here?
>
>
>
> The last question would be if anybody has some experience with this problem
> using Visual Studio and if anybody has a tip for me to solve this problem?
> That would be very helpful!
>
>
>
> Many thanks in advance!
>
>
>
> Best regards
>
> Aiko
>
> _______________________________________________
> Symphony mailing list
> Symphony at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/symphony
>
>



-- 
Dr. Ted Ralphs
Associate Professor, Lehigh University
(610) 628-1280
ted 'at' lehigh 'dot' edu
coral.ie.lehigh.edu/~ted




More information about the Symphony mailing list