user_send_lp_data

[cf]user_send_lp_data
int user_send_lp_data(void *user, void **user_lp)

Description:

If the user wishes to employ parallelism, she has to send all problem-specific data that will be needed to implement user functions in the LP module in order to set up the initial LP relaxation and perform later computations. This could include instance data, as well as user parameter settings (see Section 5.5.1 for a discussion of this). This is one of the few places where the user may need to worry about the configuration of the modules. If either the tree manager or the LP are running as a separate process (either COMPILE_IN_LP or COMPILE_IN_TM are FALSE in the make file), then the data will be sent and received through message-passing. See user_receive_lp_data for more discussion. Otherwise, it can be copied through shared memory. The easiest solution, which is set up by default is to simply copy over a pointer to a single user data structure where instance data is stored. The code for the two cases is put in the same source file by use of #ifdef statements. See the comments in the code stub for this function for more details.

Arguments:

void *user IN Pointer to the user-defined data structure.
void **user_lp OUT Pointer to the user-defined data structure for the LP module.

Return values:

USER_ERROR Error. SYMPHONY stops.
USER_SUCCESS Packing is done.
USER_DEFAULT User has no data to send. This would be used when SYMPHONY has read in an MPS or GMPL/AMPL model file.



Ted Ralphs
2007-12-21