67 assert((clustsrc >= 0) && (clustsrc < ctrl->clustnbr));
68 assert((clustdst >= 0) && (clustdst < ctrl->clustnbr));
69 assert((sync_comm_nbr > 0) && (sync_comm_nbr <= ctrl->clustnbr));
71 if(clustsrc == clustdst)
81 switch (sync_comm_nbr)
85 *startup = SHARED_STARTUP_1;
86 *bandwidth = SHARED_BANDWIDTH_1;
90 *startup = SHARED_STARTUP_2;
91 *bandwidth = SHARED_BANDWIDTH_2;
97 *startup = SHARED_STARTUP_4;
98 *bandwidth = SHARED_BANDWIDTH_4;
101 *startup = SHARED_STARTUP_8;
102 *bandwidth = SHARED_BANDWIDTH_8;
108 switch (sync_comm_nbr)
112 *startup = CLUSTER_STARTUP_1;
113 *bandwidth = CLUSTER_BANDWIDTH_1;
117 *startup = CLUSTER_STARTUP_2;
118 *bandwidth = CLUSTER_BANDWIDTH_2;
124 *startup = CLUSTER_STARTUP_4;
125 *bandwidth = CLUSTER_BANDWIDTH_4;
128 *startup = CLUSTER_STARTUP_8;
129 *bandwidth = CLUSTER_BANDWIDTH_8;
168 double *dparm = pastix_data->
dparm;
176 pastix_print_error(
"blendCtrlInit: Illegal ctrl parameter\n" );
181 pastix_print_error(
"blendCtrlInit: Illegal procnum parameter\n" );
186 pastix_print_error(
"blendCtrlInit: Illegal procnbr parameter\n" );
189 if( local_coresnbr < 1 )
191 pastix_print_error(
"blendCtrlInit: Illegal local_coresnbr parameter\n" );
194 if( local_thrdsnbr < 1 )
196 pastix_print_error(
"blendCtrlInit: Illegal local_thrdsnbr parameter\n" );
199 if( procnum >= procnbr )
201 pastix_print_error(
"blendCtrlInit: Incompatible values of procnum(%d) and procnbr (%d)\n",
202 (
int) procnum, (
int) procnbr);
208 #if defined(PASTIX_DEBUG_BLEND)
228 pastix_print_error(
"Parameter error : blocksize max < blocksize min (cf. iparm.txt)." );
281 #ifdef PASTIX_DYNSCHED
282 MALLOC_INTERN(ctrl->btree, 1, BubbleTree);
BEGIN_C_DECLS typedef int pastix_int_t
void candExit(Cand *candtab)
Exit and free the candtab structure given.
pastix_int_t * core2clust
pastix_int_t up_after_split
pastix_int_t local_nbcores
pastix_int_t width_tasks2d
pastix_int_t local_nbctxts
pastix_int_t level_tasks2d
pastix_int_t local_nbthrds
pastix_int_t total_nbcores
pastix_int_t total_nbthrds
int blendCtrlInit(pastix_data_t *pastix_data, BlendCtrl *ctrl)
Initialize the Blend control structure.
void getCommunicationCosts(const BlendCtrl *ctrl, pastix_int_t clustsrc, pastix_int_t clustdst, pastix_int_t sync_comm_nbr, double *startup, double *bandwidth)
Return the communication cost between two cores.
void blendCtrlExit(BlendCtrl *)
Finalize the Blend control structure.
The type and structure definitions.
void pastix_gendirectories(pastix_data_t *pastix_data)
Generate a unique temporary directory to store output files.
@ PASTIX_ERR_BADPARAMETER
Main PaStiX data structure.