Comments you submit will be routed for moderation. If you have an account, please log in first.

Ticket #2312 (closed enhancement: fixed)

Opened 13 years ago

Last modified 10 years ago

PEBBL templated 'main' routine

Reported by: wehart Owned by: jeckstei
Priority: normal Milestone: PEBBL 1.3
Component: PEBBL Version: PEBBL 1.2
Keywords: Cc: pebbl-developers@…
Subcomponent: Source Code

Description (last modified by wehart) (diff)

While reviewing the PEBBL documentation, it occured to me that it would be _very_ straightforward to create a templated function that could be used to easily construct a PEBBL application object.

However, we need to resolve some semantics. There are 3 possible solver modes:

a) serial
b) parallel (on 1 processor)
c) parallel (on > 1 processor)

I think we've made different decisions about whether to use (a) or (b) in the past.


Change History

comment:1 Changed 13 years ago by wehart

It's clear from the PEBBL documentation that Jonathan was thinking of (a) and (c) for serial/parallel. I think that this is sensible.

However, I'm not convinced that his knapsack.cpp works this way...

comment:2 Changed 13 years ago by jeckstei

The semantics are

(a) for one processor in most cases
(b) for one processor if the --forceParallel option is specified
(c) for more than one processor

I believe I just followed the semantics of the PICO executable and I think I did test it. The parallel_exec_test<T> template method checks for --forceParallel, I think.

comment:3 Changed 10 years ago by wehart

  • Priority changed from high to normal
  • Version changed from unspecified to PEBBL 1.2
  • Type changed from defect to enhancement
  • Description modified (diff)
  • Milestone set to PEBBL 1.3

comment:4 Changed 10 years ago by jdsiiro

  • severity normal deleted

Converting all severities into priorities and deprecating the severity field.

comment:5 Changed 10 years ago by jeckstei

  • Status changed from new to assigned

Will implement this for knapsack (which has a very simple driver), then create tasks to migrate other applications to the use it if possible.

comment:6 Changed 10 years ago by jeckstei

  • Status changed from assigned to closed
  • Resolution set to fixed

Done. There is now a main program template

driver<B=branching class,PB=parallelBranching class>

If ACRO_HAVING_MPI is undefined, PB is ignored, so it can be typedef-ed to void (or anything else) and things should compile fine. If you know don't need the option of parallelism, driver<B> will work.

Converted "knapsack" and "Docking" to use the template. The other drivers seem to have (to varying degrees) nonstandard stuff which prevents them from being easily converted.


Add a comment

Modify Ticket

Change Properties
<Author field>
as closed
The resolution will be deleted. Next status will be 'reopened'

E-mail address and user name can be saved in the Preferences.

Note: See TracTickets for help on using tickets.