50ScipParaDiffSubproblemMpi::createDatatypeCounters(
56 MPI_Datatype datatype;
58 MPI_Aint startAddress = 0;
61#ifndef UG_DEBUG_SOLUTION
63 MPI_Aint displacements[9];
64 MPI_Datatype types[9];
67 MPI_Aint displacements[10];
68 MPI_Datatype types[10];
74 blockLengths[nBlocks] = 1;
75 displacements[nBlocks] = 0;
76 types[nBlocks] = MPI_INT;
82 blockLengths[nBlocks] = 1;
83 displacements[nBlocks] = address - startAddress;
84 types[nBlocks] = MPI_INT;
90 blockLengths[nBlocks] = 1;
91 displacements[nBlocks] = address - startAddress;
92 types[nBlocks] = MPI_INT;
98 blockLengths[nBlocks] = 1;
99 displacements[nBlocks] = address - startAddress;
100 types[nBlocks] = MPI_INT;
106 blockLengths[nBlocks] = 1;
107 displacements[nBlocks] = address - startAddress;
108 types[nBlocks] = MPI_INT;
114 blockLengths[nBlocks] = 1;
115 displacements[nBlocks] = address - startAddress;
116 types[nBlocks] = MPI_INT;
122 blockLengths[nBlocks] = 1;
123 displacements[nBlocks] = address - startAddress;
124 types[nBlocks] = MPI_INT;
130 blockLengths[nBlocks] = 1;
131 displacements[nBlocks] = address - startAddress;
132 types[nBlocks] = MPI_INT;
138 blockLengths[nBlocks] = 1;
139 displacements[nBlocks] = address - startAddress;
140 types[nBlocks] = MPI_INT;
143#ifdef UG_DEBUG_SOLUTION
145 MPI_Get_address( &includeOptimalSol, &address )
147 blockLengths[nBlocks] = 1;
148 displacements[nBlocks] = address - startAddress;
149 types[nBlocks] = MPI_INT;
151 assert( nBlocks == 10 );
153 assert( nBlocks == 9 );
157 MPI_Type_create_struct(nBlocks, blockLengths, displacements, types, &datatype)
166 bool memAllocNecessary
173 MPI_Datatype datatype;
175 MPI_Aint startAddress = 0;
176 MPI_Aint address = 0;
179 MPI_Aint displacements[3];
180 MPI_Datatype types[3];
183 if( memAllocNecessary )
193 displacements[nBlocks] = 0;
195 types[nBlocks] = MPI_INT;
201 displacements[nBlocks] = address - startAddress;
203 types[nBlocks] = MPI_DOUBLE;
209 displacements[nBlocks] = address - startAddress;
211 types[nBlocks] = MPI_INT;
215 MPI_Type_create_struct(nBlocks, blockLengths, displacements, types, &datatype)
224 bool memAllocNecessary
231 MPI_Datatype datatype;
233 MPI_Aint startAddress = 0;
234 MPI_Aint address = 0;
237 MPI_Aint displacements[4];
238 MPI_Datatype types[4];
240 if( memAllocNecessary )
251 displacements[nBlocks] = 0;
253 types[nBlocks] = MPI_DOUBLE;
259 displacements[nBlocks] = address - startAddress;;
261 types[nBlocks] = MPI_DOUBLE;
267 displacements[nBlocks] = address - startAddress;;
269 types[nBlocks] = MPI_INT;
275 displacements[nBlocks] = address - startAddress;;
276 blockLengths[nBlocks] = 1;
277 types[nBlocks] = MPI_INT;
281 MPI_Type_create_struct(nBlocks, blockLengths, displacements, types, &datatype)
290 bool memAllocNecessary
297 MPI_Datatype datatype;
299 MPI_Aint startAddress = 0;
300 MPI_Aint address = 0;
303 int *blockLengths =
new int[nTotalBlocks];
304 MPI_Aint *displacements =
new MPI_Aint[nTotalBlocks];
305 MPI_Datatype *types =
new MPI_Datatype[nTotalBlocks];
307 if( memAllocNecessary )
316 if( memAllocNecessary )
326 displacements[nBlocks] = 0;
328 types[nBlocks] = MPI_DOUBLE;
336 displacements[nBlocks] = address - startAddress;
338 types[nBlocks] = MPI_DOUBLE;
345 displacements[nBlocks] = address - startAddress;
347 types[nBlocks] = MPI_INT;
353 displacements[nBlocks] = address - startAddress;
355 types[nBlocks] = MPI_CHAR;
359 MPI_Type_create_struct(nBlocks, blockLengths, displacements, types, &datatype)
362 delete [] blockLengths;
363 delete [] displacements;
372 bool memAllocNecessary
379 MPI_Datatype datatype;
381 MPI_Aint startAddress = 0;
382 MPI_Aint address = 0;
385 MPI_Aint displacements[3];
386 MPI_Datatype types[3];
388 if( memAllocNecessary )
398 displacements[nBlocks] = 0;
400 types[nBlocks] = MPI_INT;
406 displacements[nBlocks] = address - startAddress;
408 types[nBlocks] = MPI_INT;
414 displacements[nBlocks] = address - startAddress;
415 blockLengths[nBlocks] = 1;
416 types[nBlocks] = MPI_INT;
420 MPI_Type_create_struct(nBlocks, blockLengths, displacements, types, &datatype)
429 bool memAllocNecessary
436 MPI_Datatype datatype;
438 MPI_Aint startAddress = 0;
439 MPI_Aint address = 0;
442 int *blockLengths =
new int[nTotalBlocks];
443 MPI_Aint *displacements =
new MPI_Aint[nTotalBlocks];
444 MPI_Datatype *types =
new MPI_Datatype[nTotalBlocks];
446 if( memAllocNecessary )
455 if( memAllocNecessary )
464 displacements[nBlocks] = 0;
466 types[nBlocks] = MPI_INT;
474 displacements[nBlocks] = address - startAddress;
476 types[nBlocks] = MPI_INT;
483 displacements[nBlocks] = address - startAddress;
485 types[nBlocks] = MPI_CHAR;
489 MPI_Type_create_struct(nBlocks, blockLengths, displacements, types, &datatype)
492 delete [] blockLengths;
493 delete [] displacements;
502 bool memAllocNecessary
509 MPI_Datatype datatype;
511 MPI_Aint startAddress = 0;
512 MPI_Aint address = 0;
515 MPI_Aint displacements[3];
516 MPI_Datatype types[3];
518 if( memAllocNecessary )
529 displacements[nBlocks] = 0;
531 types[nBlocks] = MPI_DOUBLE;
537 displacements[nBlocks] = address - startAddress;
539 types[nBlocks] = MPI_DOUBLE;
545 displacements[nBlocks] = address - startAddress;
547 types[nBlocks] = MPI_INT;
551 MPI_Type_create_struct(nBlocks, blockLengths, displacements, types, &datatype)
560 bool memAllocNecessary
567 MPI_Datatype datatype;
569 MPI_Aint startAddress = 0;
570 MPI_Aint address = 0;
573 int *blockLengths =
new int[nTotalBlocks];
574 MPI_Aint *displacements =
new MPI_Aint[nTotalBlocks];
575 MPI_Datatype *types =
new MPI_Datatype[nTotalBlocks];
577 if( memAllocNecessary )
585 if( memAllocNecessary )
595 displacements[nBlocks] = 0;
597 types[nBlocks] = MPI_DOUBLE;
605 displacements[nBlocks] = address - startAddress;
607 types[nBlocks] = MPI_DOUBLE;
615 displacements[nBlocks] = address - startAddress;
617 types[nBlocks] = MPI_INT;
622 MPI_Type_create_struct(nBlocks, blockLengths, displacements, types, &datatype)
625 delete [] blockLengths;
626 delete [] displacements;
635 bool memAllocNecessary
642 MPI_Datatype datatype;
644 MPI_Aint startAddress = 0;
645 MPI_Aint address = 0;
648 MPI_Aint displacements[3];
649 MPI_Datatype types[3];
651 if( memAllocNecessary )
662 displacements[nBlocks] = 0;
664 types[nBlocks] = MPI_DOUBLE;
670 displacements[nBlocks] = address - startAddress;
672 types[nBlocks] = MPI_DOUBLE;
678 displacements[nBlocks] = address - startAddress;
680 types[nBlocks] = MPI_INT;
684 MPI_Type_create_struct(nBlocks, blockLengths, displacements, types, &datatype)
693 bool memAllocNecessary
700 MPI_Datatype datatype;
702 MPI_Aint startAddress = 0;
703 MPI_Aint address = 0;
706 int *blockLengths =
new int[nTotalBlocks];
707 MPI_Aint *displacements =
new MPI_Aint[nTotalBlocks];
708 MPI_Datatype *types =
new MPI_Datatype[nTotalBlocks];
710 if( memAllocNecessary )
718 if( memAllocNecessary )
728 displacements[nBlocks] = 0;
730 types[nBlocks] = MPI_DOUBLE;
738 displacements[nBlocks] = address - startAddress;
740 types[nBlocks] = MPI_DOUBLE;
748 displacements[nBlocks] = address - startAddress;
750 types[nBlocks] = MPI_INT;
755 MPI_Type_create_struct(nBlocks, blockLengths, displacements, types, &datatype)
758 delete [] blockLengths;
759 delete [] displacements;
768 bool memAllocNecessary
775 MPI_Datatype datatype;
777 MPI_Aint startAddress = 0;
778 MPI_Aint address = 0;
780 int blockLengths[12];
781 MPI_Aint displacements[12];
782 MPI_Datatype types[12];
784 if( memAllocNecessary )
803 displacements[nBlocks] = 0;
804 blockLengths[nBlocks] = 1;
805 types[nBlocks] = MPI_INT;
811 displacements[nBlocks] = address - startAddress;
813 types[nBlocks] = MPI_UNSIGNED;
819 displacements[nBlocks] = address - startAddress;
821 types[nBlocks] = MPI_UNSIGNED;
827 displacements[nBlocks] = address - startAddress;
829 types[nBlocks] = MPI_UNSIGNED;
835 displacements[nBlocks] = address - startAddress;
837 types[nBlocks] = MPI_UNSIGNED;
843 displacements[nBlocks] = address - startAddress;
845 types[nBlocks] = MPI_UNSIGNED;
851 displacements[nBlocks] = address - startAddress;
853 types[nBlocks] = MPI_UNSIGNED;
859 displacements[nBlocks] = address - startAddress;
861 types[nBlocks] = MPI_UNSIGNED;
867 displacements[nBlocks] = address - startAddress;
869 types[nBlocks] = MPI_UNSIGNED;
875 displacements[nBlocks] = address - startAddress;
877 types[nBlocks] = MPI_UNSIGNED;
883 displacements[nBlocks] = address - startAddress;
885 types[nBlocks] = MPI_UNSIGNED;
891 displacements[nBlocks] = address - startAddress;
893 types[nBlocks] = MPI_UNSIGNED;
896 assert(nBlocks == 12);
899 MPI_Type_create_struct(nBlocks, blockLengths, displacements, types, &datatype)
908 bool memAllocNecessary
915 MPI_Datatype datatype;
917 MPI_Aint startAddress = 0;
918 MPI_Aint address = 0;
921 int *blockLengths =
new int[nTotalBlocks];
922 MPI_Aint *displacements =
new MPI_Aint[nTotalBlocks];
923 MPI_Datatype *types =
new MPI_Datatype[nTotalBlocks];
925 if( memAllocNecessary )
934 if( memAllocNecessary )
945 displacements[nBlocks] = 0;
947 assert( blockLengths[nBlocks] > 0 );
948 types[nBlocks] = MPI_INT;
956 displacements[nBlocks] = address - startAddress;
958 assert( blockLengths[nBlocks] > 0 );
959 types[nBlocks] = MPI_INT;
967 displacements[nBlocks] = address - startAddress;
969 assert( blockLengths[nBlocks] > 0 );
970 assert(
sizeof(SCIP_BOUNDTYPE) ==
sizeof(
unsigned int));
971 types[nBlocks] = MPI_UNSIGNED;
977 displacements[nBlocks] = address - startAddress;
979 assert( blockLengths[nBlocks] > 0 );
980 types[nBlocks] = MPI_DOUBLE;
985 MPI_Type_create_struct(nBlocks, blockLengths, displacements, types, &datatype)
988 delete [] blockLengths;
989 delete [] displacements;
998 bool memAllocNecessary
1005 MPI_Datatype datatype;
1007 MPI_Aint startAddress = 0;
1008 MPI_Aint address = 0;
1010 int blockLengths[12];
1011 MPI_Aint displacements[12];
1012 MPI_Datatype types[12];
1014 if( memAllocNecessary )
1034 displacements[nBlocks] = 0;
1035 blockLengths[nBlocks] = 1;
1036 types[nBlocks] = MPI_INT;
1042 displacements[nBlocks] = address - startAddress;
1044 types[nBlocks] = MPI_INT;
1050 displacements[nBlocks] = address - startAddress;
1052 types[nBlocks] = MPI_DOUBLE;
1058 displacements[nBlocks] = address - startAddress;
1060 types[nBlocks] = MPI_DOUBLE;
1066 displacements[nBlocks] = address - startAddress;
1068 types[nBlocks] = MPI_DOUBLE;
1074 displacements[nBlocks] = address - startAddress;
1076 types[nBlocks] = MPI_DOUBLE;
1082 displacements[nBlocks] = address - startAddress;
1084 types[nBlocks] = MPI_DOUBLE;
1090 displacements[nBlocks] = address - startAddress;
1092 types[nBlocks] = MPI_DOUBLE;
1098 displacements[nBlocks] = address - startAddress;
1100 types[nBlocks] = MPI_DOUBLE;
1106 displacements[nBlocks] = address - startAddress;
1108 types[nBlocks] = MPI_DOUBLE;
1114 displacements[nBlocks] = address - startAddress;
1116 types[nBlocks] = MPI_DOUBLE;
1122 displacements[nBlocks] = address - startAddress;
1124 types[nBlocks] = MPI_DOUBLE;
1127 assert( nBlocks == 12 );
1130 MPI_Type_create_struct(nBlocks, blockLengths, displacements, types, &datatype)
1139 bool memAllocNecessary
1146 MPI_Datatype datatype;
1148 MPI_Aint startAddress = 0;
1149 MPI_Aint address = 0;
1151 int blockLengths[3];
1152 MPI_Aint displacements[3];
1153 MPI_Datatype types[3];
1155 if( memAllocNecessary )
1166 displacements[nBlocks] = 0;
1167 blockLengths[nBlocks] = 1;
1168 types[nBlocks] = MPI_INT;
1174 displacements[nBlocks] = address - startAddress;;
1176 types[nBlocks] = MPI_INT;
1182 displacements[nBlocks] = address - startAddress;;
1184 types[nBlocks] = MPI_INT;
1187 assert( nBlocks == 3);
1190 MPI_Type_create_struct(nBlocks, blockLengths, displacements, types, &datatype)
1199 bool memAllocNecessary
1206 MPI_Datatype datatype;
1208 MPI_Aint startAddress = 0;
1209 MPI_Aint address = 0;
1211 int nVarValueBlock = 0;
1218 nVarValueBlock += 9;
1223 int *blockLengths =
new int[nVarValueBlock + 1];
1224 MPI_Aint *displacements =
new MPI_Aint[nVarValueBlock + 1];
1225 MPI_Datatype *types =
new MPI_Datatype[nVarValueBlock + 1];
1231 blockLengths[nBlocks] = 1;
1232 displacements[nBlocks] = 0;
1233 types[nBlocks] = MPI_INT;
1236 if( memAllocNecessary )
1254 if( memAllocNecessary )
1270 displacements[nBlocks] = address - startAddress;
1272 types[nBlocks] = MPI_DOUBLE;
1278 displacements[nBlocks] = address - startAddress;
1280 types[nBlocks] = MPI_DOUBLE;
1286 displacements[nBlocks] = address - startAddress;
1288 types[nBlocks] = MPI_DOUBLE;
1294 displacements[nBlocks] = address - startAddress;
1296 types[nBlocks] = MPI_DOUBLE;
1302 displacements[nBlocks] = address - startAddress;
1304 types[nBlocks] = MPI_DOUBLE;
1310 displacements[nBlocks] = address - startAddress;
1312 types[nBlocks] = MPI_DOUBLE;
1318 displacements[nBlocks] = address - startAddress;
1320 types[nBlocks] = MPI_DOUBLE;
1326 displacements[nBlocks] = address - startAddress;
1328 types[nBlocks] = MPI_DOUBLE;
1334 displacements[nBlocks] = address - startAddress;
1336 types[nBlocks] = MPI_DOUBLE;
1343 MPI_Type_create_struct(nBlocks, blockLengths, displacements, types, &datatype)
1346 delete [] blockLengths;
1347 delete [] displacements;
1387 MPI_Datatype datatypeCounters;
1390 MPI_Type_commit( &datatypeCounters )
1396 MPI_Type_free( &datatypeCounters )
1401 MPI_Datatype datatypeBoundChanges;
1411 MPI_Type_commit( &datatypeBoundChanges )
1418 MPI_Type_free( &datatypeBoundChanges )
1424 MPI_Datatype datatypeBranchLinearConss1;
1434 MPI_Type_commit( &datatypeBranchLinearConss1 )
1441 MPI_Type_free( &datatypeBranchLinearConss1 )
1444 MPI_Datatype datatypeBranchLinearConss2;
1454 MPI_Type_commit( &datatypeBranchLinearConss2 )
1461 MPI_Type_free( &datatypeBranchLinearConss2 )
1467 MPI_Datatype datatypeBranchSetppcConss1;
1477 MPI_Type_commit( &datatypeBranchSetppcConss1 )
1484 MPI_Type_free( &datatypeBranchSetppcConss1 )
1487 MPI_Datatype datatypeBranchSetppcConss2;
1497 MPI_Type_commit( &datatypeBranchSetppcConss2 )
1504 MPI_Type_free( &datatypeBranchSetppcConss2 )
1510 MPI_Datatype datatypeLinearConss1;
1520 MPI_Type_commit( &datatypeLinearConss1 )
1527 MPI_Type_free( &datatypeLinearConss1 )
1530 MPI_Datatype datatypeLinearConss2;
1540 MPI_Type_commit( &datatypeLinearConss2 )
1547 MPI_Type_free( &datatypeLinearConss2 )
1553 MPI_Datatype datatypeBendersLinearConss1;
1563 MPI_Type_commit( &datatypeBendersLinearConss1 )
1570 MPI_Type_free( &datatypeBendersLinearConss1 )
1573 MPI_Datatype datatypeBendersLinearConss2;
1583 MPI_Type_commit( &datatypeBendersLinearConss2 )
1590 MPI_Type_free( &datatypeBendersLinearConss2 )
1596 MPI_Datatype datatypeBoundDisjunctions1;
1606 MPI_Type_commit( &datatypeBoundDisjunctions1 )
1613 MPI_Type_free( &datatypeBoundDisjunctions1 )
1616 MPI_Datatype datatypeBoundDisjunctions2;
1626 MPI_Type_commit( &datatypeBoundDisjunctions2 )
1633 MPI_Type_free( &datatypeBoundDisjunctions2 )
1639 MPI_Datatype datatypeVarBranchStats;
1649 MPI_Type_commit( &datatypeVarBranchStats )
1656 MPI_Type_free( &datatypeVarBranchStats )
1662 MPI_Datatype datatypeVarValueVars1;
1672 MPI_Type_commit( &datatypeVarValueVars1 )
1679 MPI_Type_free( &datatypeVarValueVars1 )
1682 MPI_Datatype datatypeBoundDisjunctions2;
1692 MPI_Type_commit( &datatypeBoundDisjunctions2 )
1695 commMpi->ubcast(&
nVarValueVars, 1, datatypeBoundDisjunctions2, root)
1699 MPI_Type_free( &datatypeBoundDisjunctions2 )
1741 MPI_Datatype datatypeCounters;
1744 MPI_Type_commit( &datatypeCounters )
1750 MPI_Type_free( &datatypeCounters )
1755 MPI_Datatype datatypeBoundChanges;
1758 MPI_Type_commit( &datatypeBoundChanges )
1765 MPI_Type_free( &datatypeBoundChanges )
1771 MPI_Datatype datatypeBranchLinearConss1;
1774 MPI_Type_commit( &datatypeBranchLinearConss1 )
1781 MPI_Type_free( &datatypeBranchLinearConss1 )
1784 MPI_Datatype datatypeBranchLinearConss2;
1787 MPI_Type_commit( &datatypeBranchLinearConss2 )
1794 MPI_Type_free( &datatypeBranchLinearConss2 )
1800 MPI_Datatype datatypeBranchSetppcConss1;
1803 MPI_Type_commit( &datatypeBranchSetppcConss1 )
1810 MPI_Type_free( &datatypeBranchSetppcConss1 )
1813 MPI_Datatype datatypeBranchSetppcConss2;
1816 MPI_Type_commit( &datatypeBranchSetppcConss2 )
1823 MPI_Type_free( &datatypeBranchSetppcConss2 )
1829 MPI_Datatype datatypeLinearConss1;
1832 MPI_Type_commit( &datatypeLinearConss1 )
1839 MPI_Type_free( &datatypeLinearConss1 )
1842 MPI_Datatype datatypeLinearConss2;
1845 MPI_Type_commit( &datatypeLinearConss2 )
1852 MPI_Type_free( &datatypeLinearConss2 )
1858 MPI_Datatype datatypeBendersLinearConss1;
1861 MPI_Type_commit( &datatypeBendersLinearConss1 )
1868 MPI_Type_free( &datatypeBendersLinearConss1 )
1871 MPI_Datatype datatypeBendersLinearConss2;
1874 MPI_Type_commit( &datatypeBendersLinearConss2 )
1881 MPI_Type_free( &datatypeBendersLinearConss2 )
1887 MPI_Datatype datatypeBoundDisjunctions1;
1890 MPI_Type_commit( &datatypeBoundDisjunctions1 )
1897 MPI_Type_free( &datatypeBoundDisjunctions1 )
1900 MPI_Datatype datatypeBoundDisjunctions2;
1903 MPI_Type_commit( &datatypeBoundDisjunctions2 )
1911 MPI_Type_free( &datatypeBoundDisjunctions2 )
1917 MPI_Datatype datatypeVarBranchStats;
1920 MPI_Type_commit( &datatypeVarBranchStats )
1927 MPI_Type_free( &datatypeVarBranchStats )
1933 MPI_Datatype datatypeVarValueVars1;
1936 MPI_Type_commit( &datatypeVarValueVars1 )
1943 MPI_Type_free( &datatypeVarValueVars1 )
1946 MPI_Datatype datatypeBoundDisjunctions2;
1949 MPI_Type_commit( &datatypeBoundDisjunctions2 )
1956 MPI_Type_free( &datatypeBoundDisjunctions2 )
1967 MPI_Datatype datatypeCounters;
1970 MPI_Type_commit( &datatypeCounters )
1976 MPI_Type_free( &datatypeCounters )
1981 MPI_Datatype datatypeBoundChanges;
1984 MPI_Type_commit( &datatypeBoundChanges )
1991 MPI_Type_free( &datatypeBoundChanges )
1997 MPI_Datatype datatypeBranchLinearConss1;
2000 MPI_Type_commit( &datatypeBranchLinearConss1 )
2007 MPI_Type_free( &datatypeBranchLinearConss1 )
2010 MPI_Datatype datatypeBranchLinearConss2;
2013 MPI_Type_commit( &datatypeBranchLinearConss2 )
2020 MPI_Type_free( &datatypeBranchLinearConss2 )
2026 MPI_Datatype datatypeBranchSetppcConss1;
2029 MPI_Type_commit( &datatypeBranchSetppcConss1 )
2036 MPI_Type_free( &datatypeBranchSetppcConss1 )
2039 MPI_Datatype datatypeBranchSetppcConss2;
2042 MPI_Type_commit( &datatypeBranchSetppcConss2 )
2049 MPI_Type_free( &datatypeBranchSetppcConss2 )
2055 MPI_Datatype datatypeLinearConss1;
2058 MPI_Type_commit( &datatypeLinearConss1 )
2065 MPI_Type_free( &datatypeLinearConss1 )
2068 MPI_Datatype datatypeLinearConss2;
2071 MPI_Type_commit( &datatypeLinearConss2 )
2078 MPI_Type_free( &datatypeLinearConss2 )
2084 MPI_Datatype datatypeBendersLinearConss1;
2087 MPI_Type_commit( &datatypeBendersLinearConss1 )
2094 MPI_Type_free( &datatypeBendersLinearConss1 )
2097 MPI_Datatype datatypeBendersLinearConss2;
2100 MPI_Type_commit( &datatypeBendersLinearConss2 )
2107 MPI_Type_free( &datatypeBendersLinearConss2 )
2113 MPI_Datatype datatypeBoundDisjunctions1;
2116 MPI_Type_commit( &datatypeBoundDisjunctions1 )
2123 MPI_Type_free( &datatypeBoundDisjunctions1 )
2126 MPI_Datatype datatypeBoundDisjunctions2;
2129 MPI_Type_commit( &datatypeBoundDisjunctions2 )
2137 MPI_Type_free( &datatypeBoundDisjunctions2 )
2143 MPI_Datatype datatypeVarBranchStats;
2146 MPI_Type_commit( &datatypeVarBranchStats )
2153 MPI_Type_free( &datatypeVarBranchStats )
2159 MPI_Datatype datatypeVarValueVars1;
2162 MPI_Type_commit( &datatypeVarValueVars1 )
2169 MPI_Type_free( &datatypeVarValueVars1 )
2172 MPI_Datatype datatypeBoundDisjunctions2;
2175 MPI_Type_commit( &datatypeBoundDisjunctions2 )
2182 MPI_Type_free( &datatypeBoundDisjunctions2 )
int * nVarsBoundDisjunction
SCIP_Bool * flagBoundDisjunctionInitial
SCIP_Bool * flagBoundDisjunctionDynamic
SCIP_Bool * flagBoundDisjunctionCheck
int ** idxBoundDisjunctionVars
SCIP_Bool * flagBoundDisjunctionStickingatnode
SCIP_Bool * flagBoundDisjunctionRemovable
SCIP_BOUNDTYPE ** boundTypesBoundDisjunction
SCIP_Bool * flagBoundDisjunctionEnforce
SCIP_Real ** boundsBoundDisjunction
SCIP_Bool * flagBoundDisjunctionModifiable
SCIP_Bool * flagBoundDisjunctionLocal
int nTotalVarsBoundDisjunctions
SCIP_Bool * flagBoundDisjunctionPropagate
SCIP_Bool * flagBoundDisjunctionSeparate
int ** idxLinearCoefsVars
int ** idxLinearCoefsVars
int receive(UG::ParaComm *comm, int source)
MPI_Datatype createDatatypeBranchLinearConss1(bool memAllocNecessary)
MPI_Datatype createDatatypeBendersLinearConss1(bool memAllocNecessary)
MPI_Datatype createDatatypeBoundDisjunctions2(bool memAllocNecessary)
MPI_Datatype createDatatypeBendersLinearConss2(bool memAllocNecessary)
int bcast(UG::ParaComm *comm, int root)
MPI_Datatype createDatatypeBranchSetppcConss1(bool memAllocNecessary)
MPI_Datatype createDatatypeCounters()
MPI_Datatype createDatatypeBoundDisjunctions1(bool memAllocNecessary)
int send(UG::ParaComm *comm, int dest)
MPI_Datatype createDatatypeVarValueVars1(bool memAllocNecessary)
MPI_Datatype createDatatypeBranchLinearConss2(bool memAllocNecessary)
MPI_Datatype createDatatypeVarBranchStats(bool memAllocNecessary)
ScipParaDiffSubproblemMpi * clone(UG::ParaComm *comm)
MPI_Datatype createDatatypeBoundChnages(bool memAllocNecessary)
MPI_Datatype createDatatypeVarValueVars2(bool memAllocNecessary)
MPI_Datatype createDatatypeLinearConss2(bool memAllocNecessary)
ScipParaDiffSubproblemMpi()
MPI_Datatype createDatatypeLinearConss1(bool memAllocNecessary)
MPI_Datatype createDatatypeBranchSetppcConss2(bool memAllocNecessary)
SCIP_Real ** varValueDowninfer
SCIP_Real ** varValueDownconflen
SCIP_Real ** varValueUpinfer
SCIP_Real ** varValueUpcutoff
SCIP_Real ** varVlaueUpvsids
SCIP_Real ** varValueDowncutoff
SCIP_Real ** varValueUpconflen
SCIP_Real ** varValueDownvsids
int * indicesAmongSolvers
ScipParaDiffSubproblemBranchLinearCons * branchLinearConss
ScipParaDiffSubproblemBoundDisjunctions * boundDisjunctions
SCIP_BOUNDTYPE * boundTypes
ScipParaDiffSubproblemVarBranchStats * varBranchStats
ScipParaDiffSubproblemVarValues * varValues
ScipParaDiffSubproblemBranchSetppcCons * branchSetppcConss
ScipParaDiffSubproblemLinearCons * linearConss
ScipParaDiffSubproblemLinearCons * bendersLinearConss
int getRank()
get rank of caller's thread
Base class of communicator object.
static ScipParaCommTh * comm
static const int TagDiffSubproblem4
static const int TagDiffSubproblem13
static const int TagDiffSubproblem1
static const int TagDiffSubproblem3
static const int TagDiffSubproblem12
static const int TagDiffSubproblem5
static const int TagDiffSubproblem6
static const int TagDiffSubproblem8
static const int TagDiffSubproblem10
static const int TagDiffSubproblem9
static const int TagDiffSubproblem7
static const int TagDiffSubproblem11
static const int TagDiffSubproblem14
static const int TagDiffSubproblem2
static const int TagDiffSubproblem
#define DEF_PARA_COMM(para_comm, comm)
#define MPI_CALL(mpicall)
#define PARA_COMM_CALL(paracommcall)
SCIP ParaComm extension for MPI communication.
ScipParaDiffSubproblem extension for MPI communication.