1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361
|
<html>
<body BGCOLOR="FFFFFF">
<h1>Docs: Troubleshooting</h1>
<p align="left">Doing a search below will usually lead straight to the problem.</p>
<ul>
<li>Most of the difficulties that beginners experience with
PETSc are related to linking the correct system libraries
(often those associated with Fortran). Several issues discussed below
deal with this problem. </li>
<li>Another common problem is using an incorrectly installed
MPI implementation. If PETSc programs cannot run, first compile
and run a plain old MPI program (for example, MPICH comes with
a test suite).</li>
</ul>
<p>We continually update this guide; so please click here to get
the <a href="http://www.mcs.anl.gov/petsc/petsc-2/documentation/troubleshooting.html">most
recent version.of the troubleshooting guide</a>.</p>
</tbody>
</table>
</body>
<hr>
<ol type="1" start="1">
<li><font color="#ff0000"><strong>Symptom</strong>: </font><br>
<font face="Terminal">alder> make BOPT=g <br>
ex21 cc -Dsun4 -g -o ex21 ex21.o affine3d.o
../../libs/libsg/sun4/domain.a ../../libs/libsg/sun4/Xtools.a
../../libs/libsg/sun4/tools.a ../../libs/libsg/sun4/liblapack.a
/../libs/libsg/sun4/blas.a ../../libs/libsg/sun4/system.a -lX11
-lm </font>
<p><font face="Terminal">ld: Undefined symbol _s_cmp
_e_wsfe _do_f_out _s_copy _s_wsFe _s_stop<br>
Compilation failed *** Error code 2 </font></p>
<p><font color="#ff0000"><strong>Problem: </strong></font>You
are attempting to link a program that uses Fortran libraries
that are not being found by the linker. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>Try
setting FC_LIB in bmake/$PETSC_ARCH/packages to the appropriate
library. Several examples of missing routines are listed below.
Try searching this file for your missing routine names. If you
do not find them, then to help find the missing library use the UNIX
command "nm -o", (nm -Bo on IRIX) which can be used to search
libraries for particular routines. We demonstrate an example of
this below: <br>
<font face="Terminal">eagle>cd /usr/lang/SC1.0.1/ <br>
eagle>nm -o libF77.a libF77.so* | grep do_f_out <br>
libF77.a:dfe.o: U _do_f_out <br>
libF77.a:ioinit.o: U _do_f_out <br>
libF77.a:iio.o: U _do_f_out <br>
libF77.a:sfe.o: U _do_f_out <br>
libF77.a:dofio.o:00000000 T _do_f_out <br>
libF77.so.1.4.1:0003ed90 T _do_f_out <br>
eagle> </font><br>
From the line T _do_f_out we see that the routine is defined in the
library libF77.a. (and its shared lib counterpart
libF77.so.1.4.1). </p>
<p>If you do not have a clue of the library in which the
routine is defined, you can try something like the following: </p>
<p><font face="Terminal">eagle>foreach i (*.a *.so*) <br>
foreach? echo $i foreach? <br>
nm -o $i | grep do_f_out <br>
foreach? end <br>
libF77.a <br>
libF77.a:dfe.o: U _do_f_out <br>
libF77.a:ioinit.o: U _do_f_out <br>
libF77.a:iio.o: U _do_f_out<br>
libF77.a:sfe.o: U _do_f_out <br>
libF77.a:dofio.o:00000000 T _do_f_out <br>
libF77_p.a libF77_p.a:dfe.o: U _do_f_out l<br>
ibF77_p.a:ioinit.o: U _do_f_out <br>
libF77_p.a:iio.o: U _do_f_out <br>
libF77_p.a:sfe.o: U _do_f_out <br>
libF77_p.a:dofio.o:00000000 T _do_f_out<br>
libFxview.a libV77.a <br>
libV77_p.a <br>
libm.a <br>
libm_p.a <br>
libpfc.a <br>
libpfc_p.a<br>
libF77.so.1.4.1 <br>
libF77.so.1.4.1:0003ed90 T _do_f_out <br>
libV77.so.1.1 <br>
libpfc.so.1.1 <br>
eagle> </font><br>
Here we see the routine is used and defined in both libF77.a
libF77.so.1.4.1 and libF77_p.a but not used or defined in any
of the other libraries. On Sun systems the Fortran libraries
are usually hidden in directories like /usr/lang/SC1.0.1 or
/usr/lang/SC3.0; also check /usr/lib. </p>
</li>
<li><a name="Corrupt"></a><font color="#ff0000"><strong>Symptom: </strong></font><font face="Terminal">Corrupt argument:
</font>
<p><font color="#ff0000"><strong>Problem: </strong>
An argument to a function is invalid. In Fortran this may be caused by forgeting to list an argument in the call,
especially the final ierr. Otherwise it is usually caused by memory corruption; that is somewhere the code is
writing out of array bounds. To track this down rerun the BOPT=g (or g_c++) version of the code with the option
-trdebug. Occasionally the code may crash only with the BOPT=O (or O_c++) version, in that case run the optimized
version with -trdebug. If you determine the problem is from memory corruption you can put the macro MEMCHKQ in the
code near the crash to determine exactly what line is causing the problem.
</font></p>
<p><font color="#ff0000"><strong>Cure: </strong>
</font></p>
</li>
<li><font color="#ff0000"><strong>Symptom: </strong></font><font
face="Terminal">alder>make BOPT=g <br>
make: Warning: Can't find `../../bmake/.g': <br>
/Users/barrysmith/petsc-dev/bmake/common/variables:176:
/Users/barrysmith/petsc-dev/bmake//variables: No such file or directory</font>
<p><font color="#ff0000"><strong>Problem: </strong></font>You
have not set the variable PETSC_ARCH to the architecture of your
machine (e.g., sun4, rs6000). </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>Include
in your .cshrc file some code to
set it automatically. Or remember to include the PETSC_ARCH in the
command line every time you use make. For instance, make BOPT=g
PETSC_ARCH=sun4 example4 </p>
</li>
<li><font color="#ff0000"><strong>Symptom: </strong></font><font
face="Terminal">alder>make BOPT=g ex1 <br>
make: Warning: Can't find `/home/joe/bmake/sun4.g': <br>
No such file or directory make: Fatal error in reader: makefile, line
33: Read of include file `/home/joe/bmake/sun4.g' failed </font>
<p><font color="#ff0000"><strong>Problem: </strong></font>The
variable in the makefile, PETSC_DIR does not point to the PETSc
directory; in this case it points to the directory /home/joe. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>Make
sure the variable PETSC_DIR in the makefile points to the PETSc
directory. Be aware that at many sites, your home directory may
have different names on different machines so it is usually better to
make the path relative, rather than absolute. That is, use
PETSC_DIR = ../../petsc rather than PETSC_DIR =
/c/cafa/username/petsc. </p>
</li>
<li><font color="#ff0000"><strong>Symptom: </strong></font><font
face="Terminal">alder> make BOPT=g <br>
ex1 f77 -g -o ex1 ex1.o affine2d.o \ ../../libs/libsg/sun4/domain.a
../../libs/libsg/sun4/Xtools.a ../../libs/libsg/sun4/tools.a
../../libs/libsg/sun4/liblapack.a ../../libs/libsg/sun4/blas.a
../../libs/libsg/sun4/system.a -lX11 -lm<br>
ld: ex1.o: bad magic number Compilation failed *** Error code 4 </font>
<p><font color="#ff0000"><strong>Problem:</strong></font> The
file ex1.o was compiled on a different architecture or with a
different compiler. </p>
<p><font color="#ff0000"><strong>Cure:</strong></font> Remove
all .o files and recompile from scatch. </p>
</li>
<li><font color="#ff0000"><strong>Symptom</strong>: </font><font
face="Terminal">alder>make BOPT = g ex1<br>
make: Fatal error: Don't know how to make target `BOPT</font>'
<p><font color="#ff0000"><strong>Problem: </strong></font>When
using command line options with make, do not place spaces on either
side of the ``='' signs. </p>
<p><font color="#ff0000"><strong>Cure:</strong></font> Use the
following command (with no extra spaces): alder>make BOPT=g
ex1 </p>
</li>
<li><font color="#ff0000"><strong>Symptom: </strong></font><font
face="Terminal">alder> make BOPT=g ex21 <br>
cc -Dsun4 -g -o ex21 ex21.o affine3d.o ../../libs/libsg/sun4/domain.a
../../libs/libsg/sun4/Xtools.a ../../libs/libsg/sun4/tools.a
../../libs/libsg/sun4/liblapack.a ../../libs/libsg/sun4/blas.a
../../libs/libsg/sun4/system.a -lX11 /usr/lang/SC1.0.1/libF77.a -lm <br>
ld: Undefined symbol ___class_quadruple Compilation failed *** Error
code 2</font>
<p><font color="#ff0000"><strong>Problem:</strong></font> You
are attempting to link a program which uses Fortran libraries
which are not being found by the linker. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>See
(1).
</li>
<li><font color="#ff0000"><strong>Symptom:</strong></font>
cannot find include file:
<p><font color="#ff0000"><strong>Problem:</strong></font> The
standard X11 files are not in the usual place, /usr/include. </p>
<p><font color="#ff0000"><strong>Cure:</strong></font> Make
sure the file ${PETSC_DIR}/bmake/${PETSC_ARCH}/packages has the
correct location of the X11 include files and libraries; for
instance it may have X11_INCLUDE = -I/usr/openwin/include X11_LIB
= /usr/openwin/lib/libX11.a </p>
</li>
<li><font color="#ff0000"><strong>Symptom: </strong></font><font
face="Terminal">f77 -g -o ex1 ex1.o affine2d.o \
../../libs/libsg/sun4/domain.a ../../libs/libsg/sun4/Xtools.a
../../libs/libsg/sun4/tools.a ../../libs/libsg/sun4/liblapack.a
../../libs/libsg/sun4/blas.a ../../libs/libsg/sun4/system.a -lm<br>
ld: Undefined symbol _XCreateColormap _XGetWMName _XSetWMName
_XAllocColor _XGetImage _XSetStandardProperties _XQueryFont
_XGetGeometry ....</font>
<p><font color="#ff0000"><strong>Problem: </strong></font>The
standard X libraries are not being found. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>Make
sure the file ${PETSC_DIR}/bmake/${PETSC_ARCH}/packages has the
correct location of the X11 include files and libraries; for
instance it may have X11_INCLUDE = -I/usr/openwin/include X11_LIB
= /usr/openwin/lib/libX11.a </p>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong></font> <font
face="Terminal">ld: Undefined symbol _dpotrs_</font>
<p><font color="#ff0000"><strong>Problem:</strong></font> This
is a routine within LAPACK. Either you are not linking the LAPACK
library, or your LAPACK library is incomplete. </p>
<p><font color="#ff0000"><strong>Cure:</strong></font> Install
the entire LAPACK library, available via netlib. See the file
${PETSC_DIR}/docs/website/documentation/installation.html for information on
retrieving LAPACK. </p>
</li>
<li><font color="#ff0000"><strong>Symptom</strong></font>: <font
face="Terminal">ld: Undefined symbol ___s_stop ___ansi_fflush</font>
<p><font color="#ff0000"><strong>Problem:</strong></font>
These are Fortran system calls. </p>
<p><font color="#ff0000"><strong>Cure:</strong></font> See
(1). On Sun Sparcstations you might try including the libraries
/usr/lang/SC3.0.1/lib/libansi.a or
/usr/lang/SC2.0.1/lib/libansi.a, etc. depending on the compiler version
you are using. Include them in the variable FC_LIB in the file
${PETSC_DIR}/bmake/${PETSC_ARCH}/packages </p>
</li>
<li><font color="#ff0000"><strong>Symptom</strong>: </font>On
the IBM RS/6000 <br>
0706-317 ERROR: Unresolved or undefined symbols detected: <br>
Symbols in error (followed by references) are dumped s in error
(followed by references) are dumped to the load map. The
-bloadmap:<filename> option will create a load map. .__divss .__mulh </filename>
<p><font color="#ff0000"><strong>Problem:</strong></font>
These are Fortran system calls, which are linked by the Fortran
linker but not the C linker. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>In
petsc/bmake/rs6000/rs6000 make sure the line that defines
CLINKER includes -bI:/usr/lpp/xlf/lib/lowsys.exp ... Also, see
(1). </p>
</li>
<li><font color="#ff0000"><strong>Symptom: </strong></font>On
the Sun running Solaris <br>
Undefined first referenced symbol in file __pow_di
bsmith/lapack/solaris/liblapack.a(dlamch.o)
<p><font color="#ff0000"><strong>Problem:</strong></font>
These are Fortran library calls, which are linked by the Fortran linker
but not the C linker. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>In
the file ${PETSC_DIR}/bmake/solaris/solaris make sure the line
that defines FC_LIB contains /opt/SUNWspro/SC3.0/lib/libM77.a
... Also, see (1). </p>
</li>
<li><font color="#ff0000"><strong>Symptom</strong>:</font> On
the IBM RS6000 <br>
0706-317 ERROR: Unresolved or undefined symbols detected: Symbols in
error (followed by references) are dumped to the load map. The
-bloadmap: option will create a load map. .errsav .errset
.errstr .einfo .dgef .dgesm .dpof .dposm
<p><font color="#ff0000"><strong>Problem:</strong></font>
These are IBM ESSL routines that we assume are called by the IBM
implementation of BLAS or LAPACK. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>In
bmake/rs6000/packages on the line that defines BLAS_LIB add at
the end -lessl ... This will cause PETSc to always search ESSL
for these routines. </p>
</li>
<li><font color="#ff0000"><strong>Symptom: </strong></font>[merlin]
make BOPT=O ex1 gcc -DPARCH_sun4 -pipe -c -DHAVE_STROPTS_H
-DHAVE_SEARCH_H -DHAVE_PWD_H -DHAVE_STRING_H -DHAVE_MALLOC_H
-DHAVE_X11 -DHAVE_BLOCKSOLVE -I../../../ -I../../..//include -Dmpi
-I/usr/local/mpi/include -I../../..//src
-I/home/curfman/block_solve_mpi/include -O -Wall -Wshadow
-fomit-frame-pointer -DINLINE_FOR -DPETSC_DEBUG -Dlint -DPETSC_BOPT_O
-DPETSC_LOG ex1.c <br>
Libraries not built in ../../..//lib/libO/sun4
<p><font color="#ff0000"><strong>Problem:</strong></font> The
PETSc library for BOPT=O has not yet been built on the sun4. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>In
the PETSc home directory, type make BOPT=O all >&
make_log to build the optimized version of the PETSc library.
Then recompile the example program. </p>
</li>
<li><font color="#ff0000"><strong>Symptom: </strong></font>on
DEC alpha or Paragon <br>
Make: Cannot open ./bmake/alpha/./bmake/common. Stop. or <br>
Make: Cannot open ../../../bmake/paragon/../../../bmake/common. Stop.
etc.
<p><font color="#ff0000"><strong>Problem:</strong></font> The
OSF designers decided to change make for no apparent reason.
The make on these machines tries to include additional makefiles
relative to the path of the last makefile included rather than relative
to the path of the original makefile, like all other machines
makes do. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>Try
either: </p>
<ol>
<li>Always run make with -e
PETSC_DIR=the_complete_path_of_the_petscdir This will override
the relative pathname of PETSC_DIR in the makefiles. For example, make
-e BOPT=g PETSC_DIR=/home/bsmith/petsc all </li>
<li>Use gnumake instead of the default make, and change the
line in the file ${PETSC_DIR}/bmake/${PETSC_ARCH}/base that
defines OMAKE to gnumake. </li>
</ol>
</li>
<li><font color="#ff0000"><strong>Symptom: </strong></font>on
DEC alpha or Paragon <br>
/usr/lib/cmplrs/cc/cfe: Error: mal.c, line 16: 'free' undefined,
reoccurrences will not be reported int (*PetscFree)(void
*,int,char*) = (int (*)(void*,int,char*))free;
<p><font color="#ff0000"><strong>Problem: </strong></font>The
include files on your machine are out of sync with the ones we
used for developing PETSc. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>Add
and remove entries from petsc/pinclude/petscfix.h to avoid
conflicts with prototypes in the system include files and to
define any functions that are missing in the include files. </p>
</li>
<li><font color="#ff0000"><strong>Symptom: </strong></font>on
DEC alpha <br>
adebug.c: /usr/lib/cmplrs/cc/cfe: Error:
/users/madams/petsc/pinclude/petscfix.h, line 172:
redeclaration of '\ vfprintf'; previous declaration at line 189 in file
'/usr/include/stdio.h' extern int vfprintf(FILE*,char*,...);
/usr/lib/cmplrs/cc/cfe: Warning: file.c, line 427: illegal
combination of pointer and integer if (istmp) fname = mktemp(
fname ); /usr/lib/cmplrs/cc/cfe:<br>
Error: mal.c, line 15: 'malloc' undefined, reoccurrences will not be
reporte\ d (void*(*)(unsigned int,int,char*))malloc;
<p><font color="#ff0000"><strong>Cure: </strong></font>See
(16) </p>
</li>
<li><font color="#ff0000"><strong>Symptom: </strong></font>on
some IBM RS6000 <br>
fp.c: "/usr/include/fpxcp.h", line 84.33: 1506-310 (W) The type "struct
sigcontext" was introduced in a parameter list, and will go out of
scope at the end of the function declaration or definition.
"/usr/include/fpxcp.h", line 85.32: 1506-310 (W) The type
"struct sigcontext" was introduced in a parameter list, and
will go out of scope at the end of the function declaration or
definition. ....
<p><font color="#ff0000"><strong>Problem:</strong></font> The
include files are not correctly defining the needed struct
sigcontext.</p>
<p><font color="#ff0000"><strong>Cure: </strong></font>Edit
petsc/src/sys/src/fp.c and locate the line #include <fpxcp
.h=""> and make sure there is a line struct sigcontext; above it. </fpxcp></p>
</li>
<li><font color="#ff0000"><strong>Symptom: </strong></font>on
linux When compiling and linking Fortran code we got the error
message <br>
make [filename.o] Error 4 (ignored)
<p><font color="#ff0000"><strong>Problem:</strong></font>
Unknown </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>The
compile seems ok, so this message can be safely ignored. </p>
</li>
<li><font color="#ff0000"><strong>Symptom: </strong></font>using
MPICH [0] Truncated message (in CHK_MSGLEN) <br>
[0] Aborting program! <br>
p0_8959: p4_error: (null): 1
<p><font color="#ff0000"><strong>Problem:</strong></font> this
is due to some bug in a call to an MPI routine. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>Run
the program with the option -start_in_debugger. In the
debugger, type "break p4_error" (or "stop in p4_error" for
dbx); then type "cont". When the program aborts, use debugger
commands such as "where" to track down the problem with the call.</p>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong></font> on
HP-UX <br>
Make: Unknown flag argument -. Stop. <br>
Make: Unknown flag argument -. Stop. <br>
Make: Unknown flag argument -. Stop.
<p>We have gotten this on the HP-UX using the native
(vendor provided) make. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>Install
and use Gnu make. To force PETSc to use an alternative make,
edit the file petsc/bmake/$PETSC_ARCH/base and change OMAKE to
your alternative. </p>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>on
IBM SP<br>
Could not load program
/afs/rpi.edu/big/00/0000/hongwl/petsc/petsc/src/ksp/examp les/ex1<br>
Symbol XSetWMProperties in pmd2 is undefined Symbol XSetWMName in pmd2
is undefined <br>
Error was: Exec format error
<p><font color="#ff0000"><strong>Problem:</strong></font> The
libraries on the IBM SP front-end for X may be different than on the
nodes. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>Get
your system administrator to make sure the dynamic libraries on
the nodes are IDENTICAL to those on the compiler server. </p>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>using
Fortran While using VecGetArray(), MatGetArray(), ISGetArray() <br>
/usr/local/mpi/bin/mpirun.ch_p4: 17545 Breakpoint then program stops
<p><font color="#ff0000"><strong>Problem:</strong></font> You
have compiled some of your code with the option to check for
arrays out of bound. (on the IBM rs6000 this is the -C option) </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>Recompile
all code making sure it does not check for arrays out of bound.
The use of VecGetArray(), etc. requires accessing arrays out of
bounds; this is done safely. -</p>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>You
create Draw windows or ViewerDraw windows or use options
-ksp_xmonitor or -snes_xmonitor and the program seems to run OK
but windows never open.
<p><font color="#ff0000"><strong>Problem:</strong></font> The
libraries were compiled without support for X windows. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>Make
sure that the file petsc/bmake/$PETSC_ARCH/base contains the
-DHAVE_X11 in the definition of CONF. Also, make sure that X11
is installed on your machine. Then recompile the PETSc libraries. </p>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>
<p><font color="#ff0000"><strong>Problem:</strong> </font>PETSc
cannot work on a machine where the length of C integers does not equal
the length of Fortran integers. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>Change
your compilers so that you use ones that have the same length
for integers. Or check compiler flags to see if you can change
the default integer lengths to match. </p>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>[merlin]
make BOPT=g ex19 f77 -c -I/tmp/petsc -I/tmp/petsc/include
-I/usr/local/mpi/include -I/tmp/petsc/src -DHAVE_BLOCKSOLVE
-DHAVE_MPE -DHAVE_STROPTS_H -DHAVE_SEARCH_H -DHAVE_PWD_H
-DHAVE_STRING_H -DHAVE_MALLOC_H -DHAVE_X11
-DHAVE_FORTRAN_UNDERSCORE -DHAVE_DRAND48 -g -Wall -DPETSC_DEBUG
-DPETSC_LOG -DPETSC_BOPT_g -Dlint -g -dalign ex19.F /tmp/cpp.22009.0.f:
MAIN: f77 -g -dalign -o ex19 ex19.o
-L/tmp/petsc/lib/libg/sun4_local -lpetscfortran
-L/tmp/petsc/lib/libg/sun4_local -lpetscsles -lpetscksp -lpetscmat
-lpetscvec -lpetscdraw -lpetscsys /tmp/otherlibs/libBS95.a
/tmp/otherlibs/lapack_double.a /tmp/otherlibs/lapack_complex.a
/tmp/otherlibs/blas_double.a /tmp/otherlibs/blas_complex.a
/tmp/otherlibs/libX11.a /tmp/otherlibs/libmpe.a /tmp/otherlibs/libmpi.a
/tmp/otherlibs/libF77.a -lm /tmp/otherlibs/libfm.a
/usr/lib/debug/malloc.o /usr/lib/debug/mallocmap.o -lm <br>
ld: -lpetscfortran: No such file or directory <br>
Compilation failed *** Error code 4 (ignored) rm -f -f ex19.o
<p><font color="#ff0000"><strong>Problem:</strong></font> The
PETSc Fortran interface library does not exist. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>The
PETSc Fortran interface library must be compiled from the base
PETSc directory using the command make BOPT=g fortran (or make
BOPT=O fortran for the optimized version). See the Fortran section
within the file ${PETSC_DIR}/docs/<a
href="installation.html">installation.html </a>for details. </p>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>under
Linux <br>
You use the -start_in_debugger option and it seems to start up gdb ok,
but where gives you funny stuff like (gdb) where #0 0x50067114
in globmemsize () #1 0x5008d404 in globmemsize ()
<p><font color="#ff0000"><strong>Problem:</strong></font> GDB
is confused about where it is. Everything is fine. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>Set
some break points and continue. </p>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>with
recent versions of G++ compiler<br>
libfast in: /tmp_mnt/home/schwarz/cai/petsc-2.0.14/src/is/interface <br>
In file included from ../../../include/petsc.h:112, from
../../../include/is.h:9, from ../isimpl.h:13, from index.c:7:
../../../include/options.h:12: type specifier omitted for
parameter ../../../include/options.h:12: parse error before `*'
<p><font color="#ff0000"><strong>Problem:</strong></font> Gnu
completely changed the way it does complex numbers now. It uses a
templated complex class. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>In
petsc/bmake/$PETS_ARCH/variables add -DUSES_TEMPLATED_COMPLEX to the
line defining GCOMP_PETSCFLAGS and
OCOMP_PETSCFLAGS. -</p>
</li>
<li><font color="#ff0000"><strong>Symptom: </strong></font>In
file included from
/home/petsc/BlockSolve95/include/BSsparse.h:25, from
../../../../../src/mat/impls/rowbs/mpi/mpirowbs.h:12, from
mpirowbs.c:6: /home/petsc/BlockSolve95/include/BSdepend.h:38:
warning: declaration of `int exit(int)'
/home/petsc/BlockSolve95/include/BSdepend.h:38: warning: conflicts with
built-in declaration `void exit(int)'
<p><font color="#ff0000"><strong>Problem:</strong></font> A
BlockSolve95 include file has a prototype it shouldn't have. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>Edit
the file BlockSolve95/include/BSdepend.h and remove the line(s)
extern int exit(int); </p>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>on
DEC <br>
alpha g++ -g -o ex1f ex1f.o
-L/home/curfman/petsc/lib/libg_complex/alpha -lpetscfortran
-L/home/curfman/petsc/lib/libg_complex/alpha -lpetscsles -lpetscksp
-lpetscmat -lpetscvec -lpetscsys
/home/petsc/BlockSolve95/lib/libg_complex/alpha/libBS95.a -ldxml -lX11
/usr/local/mpi/lib/alpha/ch_p4/libmpi.a /usr/lib/libutil.a
/usr/lib/libFutil.a /usr/lib/libots.a -lm <br>
collect2: ld returned 1 exit status /usr/ucb/ld: Unresolved: main
for_stop for_write_seq_lis for_set_reentrancy iargc_ getarg_
<p><font color="#ff0000"><strong>Problem:</strong></font> It
cannot find certain Fortran library routines. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>PETSc
2.0.22 and earlier - Add -lfor to the <strong>bmake/alpha/packages</strong>
after /usr/lib/libFutil.a<br>
With later versions please send us email <a
href="mailto:petsc-maint@mcs.anl.gov">petsc-maint@mcs.anl.gov</a></p>
</li>
<li><font color="#ff0000"><strong>Symptom: </strong></font>On
Sun4 running SunOS 4.1.3 with G++ version 2.7.2, compiling with
complex <br>
eagle> make BOPT=g_complex ex17 g++ -DPETSC_COMPLEX -DPARCH_sun4 -c
-I../../../.. -I../../../../include -I/usr/local/mpi/include
-DHAVE_BLOCKSOLVE -DHAVE_MPE -DPETSC_DEBUG -DPETSC_LOG
-DPETSC_BOPT_g -DPETSC_COMPLEX -DUSES_TEMPLATED_COMPLEX
-D__DIR__='"src/sles/examples/tests/"'
-I/home/petsc/BlockSolve95/include -g ex17.c g++ -g -o ex17
ex17.o -L../../../../lib/libg_complex/sun4_local -lpetscsnes
-lpetscsles -lpetscksp -lpetscmat -lpetscvec -lpetscsys
/tmp/otherlibs/libX11.a /tmp/otherlibs/libBS95.a
/tmp/otherlibs/lapack_complex.a
/home/bsmith/lapack/lapack_sun4_g_double.a
/tmp/otherlibs/blas_complex.a /tmp/otherlibs/blas_double.a
/tmp/otherlibs/libmpe.a /tmp/otherlibs/libmpi.a
/usr/lib/debug/malloc.o /usr/lib/debug/mallocmap.o <br>
collect2: ld returned 2 exit status<br>
ld: Undefined symbol _s_wsFe __Fz_eq _s_stop _s_cmp _do_f_out __Fz_ne
_s_cat _e_wsfe _s_copy *** <br>
Error code 1 (ignored) rm -f ex17.o
<p><font color="#ff0000"><strong>Cure: </strong></font>You
must list in sun4/packages for the variable FC_LIB
/usr/lang/SC1.0.1/libF77.a /usr/lang/SC1.0.1/libm.a See also
the next two troubleshooting problems </p>
</li>
<li><font color="#ff0000"><strong>Symptom: </strong></font>On
Sun4 running SunOS 4.1.3 with G++ version 2.7.2, compiling with
complex <br>
eagle>make BOPT=g_complex ex17 g++ -DPETSC_COMPLEX -DPARCH_sun4 -c
-I../../../.. -I../../../../include -I/usr/local/mpi/include
-DHAVE_BLOCKSOLVE -DHAVE_MPE -DPETSC_DEBUG -DPETSC_LOG
-DPETSC_BOPT_g -DPETSC_COMPLEX -DUSES_TEMPLATED_COMPLEX
-D__DIR__='"src/sles/examples/tests/"'
-I/home/petsc/BlockSolve95/include -g ex17.c g++ -g -o ex17
ex17.o -L../../../../lib/libg_complex/sun4_local -lpetscsnes
-lpetscsles -lpetscksp -lpetscmat -lpetscvec -lpetscsys
/tmp/otherlibs/libX11.a /tmp/otherlibs/libBS95.a
/tmp/otherlibs/lapack_complex.a
/home/bsmith/lapack/lapack_sun4_g_double.a
/tmp/otherlibs/blas_complex.a /tmp/otherlibs/blas_double.a
/tmp/otherlibs/libmpe.a /tmp/otherlibs/libmpi.a
/tmp/otherlibs/libF77.a /usr/lib/debug/malloc.o
/usr/lib/debug/mallocmap.o <br>
collect2: ld returned 2 exit status<br>
ld: Undefined symbol __Fz_eq __Fz_ne *** <br>
Error code 1 (ignored) rm -f ex17.o
<p><font color="#ff0000"><strong>Cure: </strong></font>You
must include in packages for FC_SITE also the library
/usr/lang/SC1.0.1/libm.a See also the next troubleshooting
problem. </p>
</li>
<li><font color="#ff0000"><strong>Symptom: </strong></font>On
Sun4 running SunOS 4.1.3 with G++ version 2.7.2, compiling with
complex C<br>
eagle> make BOPT=g_complex ex17 g++ -DPETSC_COMPLEX -DPARCH_sun4 -c
-I../../../.. -I../../../../include -I/usr/local/mpi/include
-DHAVE_BLOCKSOLVE -DHAVE_MPE -DPETSC_DEBUG -DPETSC_LOG
-DPETSC_BOPT_g -DPETSC_COMPLEX -DUSES_TEMPLATED_COMPLEX
-D__DIR__='"src/sles/examples/tests/"'
-I/home/petsc/BlockSolve95/include -g ex17.c g++ -g -o ex17
ex17.o -L../../../../lib/libg_complex/sun4_local -lpetscsnes
-lpetscsles -lpetscksp -lpetscmat -lpetscvec -lpetscsys
/tmp/otherlibs/libX11.a /tmp/otherlibs/libBS95.a -lm
/tmp/otherlibs/lapack_complex.a
/home/bsmith/lapack/lapack_sun4_g_double.a
/tmp/otherlibs/blas_complex.a /tmp/otherlibs/blas_double.a
/tmp/otherlibs/libmpe.a /tmp/otherlibs/libmpi.a
/usr/lang/SC1.0.1/libF77.a /usr/lang/SC1.0.1/libm.a
/usr/lib/debug/malloc.o /usr/lib/debug/mallocmap.o <br>
collect2: ld returned 2 exit status <br>
ld: /lib/libm.a(trig.o): _fp_pi: multiply defined *** Error code 1
(ignored)
<p><font color="#ff0000"><strong>Problem: </strong></font>the
variable fp_pi is defined in both /usr/lang/SC1.0.1/libm.a and
the usual -lm math library. The g++ linker has a bug in it that
trys to include if from both. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>You
must make a copy of /usr/lang/SC1.0.1/libm.a say cp
/usr/lang/SC1.0.1/libm.a ~/libfm.a then delete the reference to
the variable in that file with ar d ~/libfm.a __fp_pi.o ranlib
~/libfm.a Now in sun4/packages list ~/libfm.a instead of
/usr/lang/SC1.0.1/libm.a </p>
</li>
<li><font color="#ff0000"><strong>Symptom: </strong></font>On
DEDC alpha Unaligned access pid=15199 va=140021674 pc=12001e8d8
ra=12001e8c0 type=ldt
<p><font color="#ff0000"><strong>Problem: </strong></font>The
system has detected an unaligned variable. This is usually an
unaligned double. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>Make
sure in Fortran that you always write double precision numbers
as 10.d0 etc not just as 10. cause then it will be stored as a
single precision number and may not be properly aligned. -</p>
</li>
<li><font color="#ff0000"><strong>Symptom: </strong></font>PetscScalarAddressToFortran:C
and Fortran arrays are not commonly aligned <br>
or are too far apart to be indexed by an integer. <br>
Locations: C 1920156 Fortran 2438656 [<br>
0] MPI Abort by user Aborting program ! <br>
[0] Aborting program!
<p><font color="#ff0000"><strong>Problem:</strong></font> This
occurs when trying to access a PETSc array from Fortran. The array may
have been obtained with VecGetArray(), MatGetArray(), etc. On
the IRIX64 this is because the Fortran address's are so far
away from the C address that you cannot move between them with an
integer offset (integers are just not big enough). On other machines
this is because the distance between the Fortran array starting
point and the C array starting point is not divisible by the
length of a double (or complex). This one cannot access the other with
an integer offset. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>1)
Rewrite Fortran code to not use the particular XXXGetXXX()
routine. For example, use VecSetValues() instead of directly
stuffing the values into the array. 2) Determine how to force the
Fortran and or C compiler to commonly align doubles or complex
numbers. That is, if all doubles are double aligned then this
won't be a problem, if all complex are quad aligned then it is not a
problem. If you determine how to do this for a particular machine,
please let use know so we can add it to PETSc. </p>
</li>
<li><font color="#ff0000"><strong>Symptom: </strong></font>On
rs6000 machines, the program encounters a segmentation fault
when initializing MPI. <br>
[light] mpirun ex1 <br>
/light_home2/lmcinnes/mpich/lib/rs6000/ch_p4/mpirun: 23817 Memory fault <br>
See, e.g., the following debugger session:<br>
[light] 525%gdb ex1 <br>
GDB is free software and you are welcome to distribute copies of it
under certain conditions; type "show copying" to see the
conditions. There is absolutely no warranty for GDB; type "show
warranty" for details. GDB 4.13 (rs6000-ibm-aix3.2), Copyright
1994 Free Software Foundation, Inc... <br>
(gdb) run -p4pg joe <br>
Starting program:
/light_home2/lmcinnes/petsc-2.0.15/src/sles/examples/tutorials/ex1
-p4pg joe <br>
Program received signal SIGSEGV, Segmentation fault. 0x10003750 in
getenv () <br>
(gdb) where <br>
#0 0x10003750 in getenv () <br>
#1 0x10001438 in MPIR_Init (=0x2ff7f630, =0x2ff7f634) <br>
#2 0x10001384 in MPI_Init (=0x2ff7f630, =0x2ff7f634) <br>
#3 0x100004d8 in main (argc=3, args=0x2ff7f65c) at ex1.c:37 <br>
#4 0x10000430 in __start ()
<p><font color="#ff0000"><strong>Problem: </strong></font>As
shown below, libxlf.a contains the Fortran routine getenv(), which is
being used instead of the UNIX routine that we really need.
This seems to occur when using gcc/g++ instead of xlc. <br>
</p>
<p><font color="#ff0000"><strong>Cure: </strong></font>Edit
the file petsc/bmake/rs6000/bpackages and define FC_LIB as as
follows, making sure to list "-lbsd -lc" BEFORE libxlf.a and
any other Fortran libraries. FC_LIB = -lbsd -lc
/usr/lib/libxlf.a </p>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>make
BOPT=g ex1 xlC -DPARCH_rs6000 -D_POSIX_SOURCE -c
-I/tmp_mnt/home/someone/current_petsc/petsc-2.0.15
-I/tmp_mnt/home/someone/current_petsc/petsc-2.0.15/include
-I/usr/local/mpich/include -I/usr/local/mpich/mpe -DHAVE_ESSL
-DHAVE_MPE -DPETSC_DEBUG -DPETSC_LOG -DPETSC_BOPT_g
-D__DIR__='"src/mat/examples/tests/"' -g ex1.c mpcc -g -o ex1 ex1.o
-L/tmp_mnt/home/someone/current_petsc/petsc-2.0.15/lib/libg/rs6000
-lpetscts -lpetscsnes -lpetscsles -lpetscksp -lpetscmat
-lpetscvec -lpetscsys
-lX11/usr/local/mpich/lib/rs6000/ch_mpl/libpmpi.a
/usr/local/mpich/lib/rs6000/ch_mpl/libmpe.a
/usr/local/mpich/lib/rs6000/ch_mpl/libmpi.a /usr/lib/libxlf.a
/usr/lib/libxlf90.a -bI:/usr/lpp/xlf/lib/lowsys.exp -lm <br>
0706-317 ERROR: Unresolved or undefined symbols detected: <br>
Symbols in error (followed by references) are dumped to the load map.
The -bloadmap:
<p><font color="#ff0000"><strong>Problem:</strong></font>
Those are IBM library routines for sparse direct solution of
linear systems. You must have compiled PETSc with the flag -DHAVE_ESSL
flag defined in bmake/rs6000/packages but not listed -lessl on
the line that defines the Lapack libraries LAPACK_LIB = .... </p>
<p><font color="#ff0000"><strong>Cure: </strong></font></p>
<ol>
<li>if you have essl installed on your machine add -lessl
to the the line LAPACK_LIB = .. in bmake/rs6000/packages or </li>
<li>if you do not have essl,
<p>a) then remove -DHAVE_ESSL from bmake/rs6000/packages </p>
<p>b) cd to src/mat/impls/aij/seq </p>
<p>c) type touch essl.c </p>
<p>d) type make BOPT=g or (make BOPT=O) This will rebuild
just the one library that needs to be rebuilt. </p>
</li>
</ol>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>While
Installing PETSc on rs6000, using g++ libfast in:
/tmp/petsc/src/sys/src <br>
fdate.c: In function `char * PetscGetDate()': <br>
fdate.c:18: warning: implicit declaration of function `int
gettimeofday(...)' <br>
libfast in: /tmp/petsc/src/viewer/impls/matlab <br>
send.c: In function `int ViewerDestroy_Matlab(struct _PetscObject *)': <br>
send.c:101: warning: implicit declaration of function `int
setsockopt(...)'
<p><font color="#ff0000"><strong>Problem:</strong></font> The
prototypes of the above functions are not specifed in the
gcc/g++ include files </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>Edit
petsc/include/pinclude/petscfix.h -- , <br>
after the lines <br>
#if defined(PARCH_rs6000) <br>
#if defined(__cplusplus) <br>
extern "C" { <br>
add the following: <br>
extern int setsockopt(...); <br>
extern int gettimeofday(...); </p>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>On
Linux and FreeBSD using older versions of f2c/gcc (for example
gcc 2.6.3) while compiling the BLAS libraries zrotg: Error on
line 13 of zrotg.f: bad argument type to intrinsic dsqrt
<p><font color="#ff0000"><strong>Problem:</strong></font>
Error in the compiler</p>
<p><font color="#ff0000"><strong>Cure:</strong></font></p>
<ol>
<li>upgrade your system or </li>
<li>remove any reference to the file zrotg.f from the
makefile in the blas1 directory. </li>
<li> </li>
</ol>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>On
IBM rs6000 "send.c", line 66.12: <br>
1506-343 () Redeclaration of connect differs from previous declaration
on line 373 of "/usr/include/sys/socket.h". <br>
1506-286: (E) Error in message set 12, unable to retrieve message 377.<br>
"send.c", line 74.12: 1506-343 () Redeclaration of sleep differs from
previous declaration on line 154 of "/usr/include/unistd.h".
<p><font color="#ff0000"><strong>Problem: </strong></font>IBM
added prototypes to these functions that did not use to have them. <font
color="#ff0000"><strong>Cure: </strong></font>Comment out the
prototype for connect() and sleep() in the file
src/viewers/impls/matlab/send.c </p>
</li>
<li><font color="#ff0000"><strong>Symptom: </strong></font>On
SGI Origin 2000<br>
make BOPT=g fortran rm -f -f
/scratch-modi4/barrys/petsc-2.0.15/lib/libg/IRIX64/libpetscfortran.*<br>
Beginning to compile Fortran interface library <br>
Using Fortran compiler: f77 -O -g <br>
Using C/C++ compiler: cc -64 -DPARCH_IRIX64 -woff 1164 -woff 1048 -g <br>
Using PETSc flags: -DPETSC_DEBUG -DPETSC_LOG -DPETSC_BOPT_g <br>
Using configuration flags: -DHAVE_PWD_H -DHAVE_STRING_H
-DHAVE_STROPTS_H -DHAVE_MALLOC_H -DHAVE_64BITS -DHAVE_X11
-DHAVE_FORTRAN_UNDERSCORE -DHAVE_DRAND48 -DHAVE_GETDOMAINNAME
-DHAVE_UNAME -DHAVE_UNISTD_H -DHAVE_SYS_TIME_H <br>
Using include paths: -I/scratch-modi4/barrys/petsc-2.0.15
-I/scratch-modi4/barrys/petsc-2.0.15/include -DUSES_INT_MPI_COMM <br>
Using PETSc directory: /scratch-modi4/barrys/petsc-2.0.15 <br>
Using PETSc arch: IRIX64 ------------------------------------------<br>
for i in zoptions.o zksp.o zpc.o zsnes.o zsys.o zmat.o zvec.o zsles.o
zdraw.o zda.o zviewer.o zis.o zplog.o zstart.o zstartf.o zts.o
zao.o; <br>
do make libmember LIBMEMBER=$i ; <br>
done cc -64 -DPARCH_IRIX64 -woff 1164 -woff 1048 -c
-I/scratch-modi4/barrys/petsc-2.0.15
-I/scratch-modi4/barrys/petsc-2.0.15/include -DUSES_INT_MPI_COMM
-DPETSC_DEBUG -DPETSC_LOG -DPETSC_BOPT_g -DHAVE_PWD_H
-DHAVE_STRING_H -DHAVE_STROPTS_H -DHAVE_MALLOC_H -DHAVE_64BITS
-DHAVE_X11 -DHAVE_FORTRAN_UNDERSCORE -DHAVE_DRAND48
-DHAVE_GETDOMAINNAME -DHAVE_UNAME -DHAVE_UNISTD_H
-DHAVE_SYS_TIME_H -D__DIR__='"src/fortran/custom/"' -g
zoptions.c ar cr
/scratch-modi4/barrys/petsc-2.0.15/lib/libg/IRIX64/libpetscfortran.a
zoptions.o rm -f zoptions.o <br>
sh: 12345 Memory fault(coredump) *** Error code 139 (bu21) *** Error
code 1 (bu21) (ignored) for i in somefort.o; do make libmember
LIBMEMBER=$i ; done sh: 12307 Memory fault(coredump) *** Error
code 139 (bu21)
<p><font color="#ff0000"><strong>Problem:</strong></font> Bug
in the SGI make </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>Compile
the Fortran interface "manually". cd to src/fortran/custom and
run make BOPT=g (or O, etc) libfast then cd to src/fortran/auto
and run make BOPT=g (or O, etc) libfast </p>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>libfast
in:
/usr/project/hsg/lemur/lemur_apps/petsc-2.0.15/src/is/interface In file
included from
/disk/usr/project/hsg/lemur/lemur_apps/petsc-2.0.15/include/petsc.h:177,
from
/disk/usr/project/hsg/lemur/lemur_apps/petsc-2.0.15/include/is.h:9,
from
/disk/usr/project/hsg/lemur/lemur_apps/petsc-2.0.15/src/is/isimpl.h:13,
from index.c:7:
/disk/usr/project/hsg/lemur/lemur_apps/petsc-2.0.15/include/plog.h:134:
mpe.h: No such file or directory
<p><font color="#ff0000"><strong>Problem:</strong></font> You
are installing PETSc with the HAVE_MPE option and MPE is not
installed on your machine </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>Either
edit the file bmake/$PETSC_ARCH/packages and locate the line PCONF =
remove the reference -DHAVE_MPE Or install MPE on your system
and make edit bmake/$PETSC_ARCH/packages to make sure that the
directory where mpe.h is located is listed on the line MPI_INCLUDE =
-Istuff </p>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>under
Solaris "vinv.c", line 61: MPI_Allreduce: macro recursion
gcreatev.c: > vscat.c: > "vscat.c", line 535:
MPI_Allreduce: macro recursion > "vscat.c", line 559:
MPI_Allreduce: macro recursion > "vscat.c", line 577:
MPI_Allreduce: macro recursion > "vscat.c", line 602: MPI_Allreduce:
macro recursion > "vscat.c", line 649: MPI_Allreduce: macro
recursion > "vscat.c", line 673: MPI_Allreduce: macro
recursion > vpscat.c: > >>
<p><font color="#ff0000"><strong>Problem:</strong></font> Not
sure. Could be a bug in the CPP preprocessor. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>include/plog.h
and locating the line #if !defined(PETSC_USING_MPIUNI)
&& !defined(PARCH_hpux) and changing it to #if
!defined(PETSC_USING_MPIUNI) && !defined(PARCH_hpux) &&
!defined(PARCH_solaris) or in versions of PETSc greater then 2.0.15
edit the file include/petsclog.h </p>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>under
Solaris > testexamples_3 in:
/vol/hsm/apps/petsc-2.0.15/src/is/examples/tests > f77 -c
-I/vol/hsm/apps/petsc-2.0.15 -I/vol/hsm/apps/petsc-2.0.15/include
-I/vol/hsm/apps/mpi ch/include -DPETSC_DEBUG -DPETSC_LOG
-DPETSC_BOPT_g -D__DIR__='"src/is/examples/tests/"' -g - xs
ex1f.F > /tmp/fpp.14568.0.f: > MAIN: > Not in
assembler subset: .xstabs ".stab.index",
.15/src/is/examples/tests;/vol/sunws/SU NWspro/bin/../SC4.2/bin/f77 -c
-I/vol/hsm/apps/petsc-2.0.15 -I/vol/hsm/apps/petsc-2.0.15/includ e
-I/vol/hsm/apps/mpich/include -DPETSC_DEBUG -DPETSC_LOG -DPETSC_BOPT_g
-D__DIR__='\\"src/is/e xamples/tests/\\"' -g -xs -qoption f77pass1
-p\\$XA0SD6NKcKFzi64. ex1f.F,0x34,0,0,0 > *** Error code 1 >
make: Fatal error: Command failed for target ex1f.o >
Current working directory /vol/hsm/apps/petsc-2.0.15/src/is/examples/tests > Missing: program
name Program ex1f either does not exist, is not
<p><font color="#ff0000"><strong>Problem:</strong></font> The
Sun WorkShop Compiler FORTRAN 77 4.2 for .F files uses the symbol
__DIR__ which PETSc also uses URGHH. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>In
the directory src/fortran/custom remove from the makefile
-D__DIR__='"${LOCDIR}"'. Also in every examples/tutorials or
tests directory with .F files remove the -D__DIR__=something. </p>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>The
program seems to use more and more memory as it runs, even
though you don't think you are allocating more memory.
<p><font color="#ff0000"><strong>Problem:</strong></font>
Possibly some of the following:</p>
<ol>
<li>You are creating new PETSc objects but never freeing
them.</li>
<li>There is a memory leak in PETSc or your code. </li>
<li>Something much more subtle: (if you are using Fortran).
When you declare a large array in Fortran, the operating
system does not allocate all the memory pages for that array
until you start using the different locations in the array. Thus, in a
code, if at each step you start using later values in the
array your virtual memory usage will "continue" to increase
as measured by ps or top. </li>
<li>You are running with the -log, -log_mpe, or -log_all
option. He a great deal of logging information is stored in
memory until the conclusion of the run.</li>
<li>You are linking with the MPI profiling libraries; these
cause logging of all MPI activities. Another <font
color="#ff0000"><strong>Symptom</strong> </font>is at the
conclusion of the run it may print some message about writing log
files. </li>
</ol>
<p><font color="#ff0000"><strong>Cures:</strong></font></p>
<ol>
<li>Run with the -trmalloc_log option or -trdump. Use the
commands PetscTrDump() and PetscTrLogDump() sprinkled in
your code to track memory that is allocated and not later
freed. Use the commands PetscTrSpace() and PetscGetResdidentSetSize()
to monitor memory allocated and total memory used as the
code progresses. </li>
<li>This is just the way Unix works and is harmless.</li>
<li>Do not use the -log, -log_mpe, or -log_all option, or
use PLogEventDeactivate() or PLogEventDeactivateClass(),
PLogEventMPEDeactivate() to turn off logging of specific
events. </li>
<li>Make sure you do not link with the MPI profiling
libraries. Edit the file bmake/$PETSC_ARCH/packages and
remove all references to libraries with lmpi and pmpi in
their names. </li>
</ol>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>Under
Windows NT When Installing using g++ libfast in:
/users/petsc/petsc_prj/petsc/src/sys/src str.c: In function `void
PetscStrncpy(char *, char *, int)': str.c:36: warning: implicit
declaration of function `int strncpy(...)' ... ...
<p><font color="#ff0000"><strong>Problem:</strong></font> This
is due to the case insensitivity of NT file systems. Instead of using
string.h , the compiler is picking up String.h - a C++
include-file, causing these errors. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>In
the gcc include dir do "cp string.h string_bak.h" - Edit
petsc/src/sys/src/str.c replace string.h with string_bak.h -
Edit petsc/src/sys/src/memc.c replace memory.h with string_bak.h -
recompile. </p>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>on
SGI (or Origin) using SGI MPI version 2.0 MPI Error, rank:0,
function:MPI_ERRHANDLER_SET, Invalid communicator MPI_Abort()
called, aborting program! Other, random crashes in MPI.
<p><font color="#ff0000"><strong>Problem: </strong></font>bug
in SGI's implementation of MPI called version 2.0 (confirmed by
SGI) </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>Upgrade
to SGI's version 3.0 of MPI. </p>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>on
SGI Powerchallenge running 6.2 ld64: WARNING 134: weak
definition of __dcis in /usr/lib64/mips4/libftn.so preempts that
weak definition in /usr/lib64/mips4/libm.so. ld64: WARNING 134: weak
definition of __rcis in /usr/lib64/mips4/libftn.so preempts
that weak definition in /usr/lib64/mips4/libm.so.
<p><font color="#ff0000"><strong>Problem:</strong></font>
Message seems harmless </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>Change
the CLINKER and FLINKER in bmake/IRIX64/base to <br>
CLINKER = cc -64 ${COPTFLAGS} -Wl,-woff,84,-woff,85,-woff,134 -rpath
${LDIR}:${DYLIBPATH} <br>
FLINKER = f77 -64 ${FOPTFLAGS} -Wl,-woff,84,-woff,85,-woff,134 -rpath
${LDIR}:${DYLIBPATH}</p>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>on
HP running HP's version of MPI. sl0934 222: mpirun -np 1 ./ex12
-f
/ford/sl0934/u/kellwood/misc/petsc/petsc-2.0.17/src/mat/examples/matbinary.ex
ex12: Rank 0: Pid 4610: MPI_Attr_get: Invalid communicator:
Null communicator ex12: Rank 0: Pid 4610: MPI_Abort: Aborting
the application mpirun: Error: Job ID 4609 ended abnormally
<p><font color="#ff0000"><strong>Problem:</strong></font> The
HP implementation of MPI uses different values to represent MPI
communicators in C/C++ and Fortran so we have to translate the
values in the Fortran stubs. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>Edit
the file src/fortran/custom/zpetsc.h and change the lines #else
#define PetscToPointer(a) (a) #define PetscFromPointer(a)
(int)(a) #define PetscRmPointer(a) #define
PetscToPointerComm(a) (a) #define PetscFromPointerComm(a) (int)(a)
#endif to #else #define PetscToPointer(a) (a) #define
PetscFromPointer(a) (int)(a) #define PetscRmPointer(a) #define
PetscToPointerComm(a) MPI_Comm_F2C(a) #define PetscFromPointerComm(a)
MPI_Comm_C2F(a) #endif then rebuild the fortran interface library by
running make BOPT=g (or BOPT=O or g_c++ etc) fortran in the
main PETSc directory </p>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>on
Cray T3D/T3E mpirun -np 1 ex1 -log_info /bin/mpprun: exec of
'ex1' failed: No such file or directory
<p><font color="#ff0000"><strong>Problem: </strong></font>./
is not in your path. </p>
<p><font color="#ff0000"><strong>Cure:</strong></font> add ./
to your PATH variable in your .cshrc </p>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>With
GMRES At restart the second residual norm printed does not
match the first <br>
26 KSP Residual norm 3.421544615851e-04 <br>
27 KSP Residual norm 2.973675659493e-04 <br>
28 KSP Residual norm 2.588642948270e-04 <br>
29 KSP Residual norm 2.268190747349e-04 <br>
30 KSP Residual norm 1.977245964368e-04<br>
30 KSP Residual norm 1.994426291979e-04 <----- At restart the
residual norm is printed a second time
<p><font color="#ff0000"><strong>Problem:</strong></font>
Actually this is not surprising. GMRES computes the norm of the
residual at each iteration via a recurrence relation between
the norms of the residuals at the previous iterations and quantities
computed at the current iteration; it does not compute it via directly
|| b - A x^{n} ||. Sometimes, especially with an
ill-conditioned matrix, or computation of the matrix-vector
product via differencing, the residual norms computed by GMRES start to
"drift" from the correct values. At the restart, we compute the
residual norm directly, hence the "strange stuff," the
difference printed. The drifting, if it remains small, is
harmless (doesn't effect the accuracy of the solution that GMRES
computes). </p>
<p><font color="#ff0000"><strong>Cure:</strong></font> There
realy isn't a cure, but if you use a more powerful
preconditioner the drift will often be smaller and less
noticeable. Of if you are running matrix-free you may need to tune the
matrix-free parameters.</p>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>Error
message while installing compiling in
src/mat/impls/rowbs/mpi/mpirowbs.c about ProcSet, for example,
mpirowbs.c:<br>
cfe: Error: mpirowbs.c, line 1753: Syntax Error
BSctx_set_ps(bspinfo,(ProcSet*)comm); {if (__BSERROR_STATUS)
> {fprintf((&__iob[2]) , "BlockSolve95 Error Code >
%d\n",__BSERROR_STATUS); {if (1) {return
PetscError(1753,"MatCreateMPIRowbs" >
,"mpirowbs.c","src/mat/impls/rowbs/mpi/" ,1,0,(char *)0);} ;} ;}} ;
<p><font color="#ff0000"><strong>Problem:</strong></font> They
changed BlockSolve95 incompletely. </p>
<p><font color="#ff0000"><strong>Cure:</strong></font> Remove
the (ProcSet*) from mpirowbs.c </p>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>Error
message when using BlockSolve95 0 - Error in MPI object : Could
not convert index -268437876(effff68c) into a pointer. The
index may be an incorrect argument. Possible sources of this problem
are a missing "include 'mpif.h'", a misspelled MPI object
(e.g., MPI_COM_WORLD instead of MPI_COMM_WORLD) or a misspelled
user variable for an MPI object (e.g., com instead of comm).
[0] Aborting program ! [0] Aborting program!
<p><font color="#ff0000"><strong>Problem: </strong></font>This
is due to changes in prototye of a BlockSolve95 function. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>Install
the latest version of BlockSolve95 </p>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>Error
When Installing PETSc with BlockSolve95 mpirowbs.c: In function
`int MatCreateMPIRowbs(struct MPIR_COMMUNICATOR *, int, int,
int, int *, void *, struct _p_Mat **)': mpirowbs.c:1755: passing
`MPIR_COMMUNICATOR *' as argument 2 of `BSctx_set_ps(__BSprocinfo *,
MPIR_COMMUNICATOR **)'
<p><font color="#ff0000"><strong>Problem:</strong></font> This
is due to changes in prototye of a BlockSolve95 function. </p>
<p><font color="#ff0000"><strong>Cure:</strong></font> Install
the latest version of BlockSolve95 </p>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>on
Cray T3E/T3D My mixed Fortran/(C or C++) code works fine on
other machines but does not link (or links but crashes on) on
the Cray T3D or T3E.
<p><font color="#ff0000"><strong>Probable problems</strong></font>:</p>
<ol>
<li>NOT LINKING: the Cray Fortran compiler changes all
Fortran routine names to all caps, so when you call them
from C/C++ with all small letters, the linker cannot find the. </li>
<li>STRANGE CRASHING: the Cray Fortran compiler uses double
precision to denote quad precision and single precision to
denote "regular" double precision. </li>
</ol>
<p><font color="#ff0000"><strong>Cures:</strong></font> </p>
<ol>
<li>You must make sure that when you call Fortran routines
from C/C++ the name of the routine called (in C/C++) is in
all caps. The PETSc macro HAVE_FORTRAN_CAPS is defined on
machines like the Cray so you can use it in your C/C++ like this #if
defined(HAVE_FORTRAN_CAPS) #define myfortranroutine_ MYFORTRANROUTINE
#elif !defined(HAVE_FORTRAN_UNDERSCORE) #define
myfortranroutine_ #define myfortranroutine #endif /* some C
code that calls Fortran */ myfortranroutine_(.....). See
src/fortran/custom/zoptions.c for examples. </li>
<li>To get the Fortran compiler to to behave like a normal
Unix Fortran compiler you must make sure that all of your
Fortran routines are compiled with the -dp flag. If you use the
PETSc makefiles and macro FC to compile your Fortran code this will
handle this automatically. </li>
</ol>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>Error
when running petsc example <br>
<strong>fire >>mpirun ex11<br>
ld.so.1: /XXXXX/petsc/src/sles/examples/tutorials/ex11: fatal: <br>
libcomplex.so.5: can't open file:
errno=2 </strong>
<p><font color="#ff0000"><strong>Problem: </strong></font>This
happens when a shared library is used instead of the regular
library, (when the -l option is used, shared version of the
library is used if present) but the location of this library is not
known to the shared library loader ld.so. </p>
<p><font color="#ff0000"><strong>Cure:</strong></font> You can
do either of the following: <br>
1. Add the path where the library is located to the environmental
variable LD_LIBRARY_PATH. Assuming that this library is located
in /opt/SUNWspro/lib, you can do: <br>
<strong>setenv LD_LIBRARY_PATH /opt/SUNWspro/lib:/lib</strong> <br>
Note: For parallel jobs you have to make sure that all processes
started see this variable, so it should be set in your .cshrc
file</p>
<p>2. On some machines (e.g., solaris, IRIX, IRIX64), you can
set this path in the variable DYLIBPATH in <strong>${PETSC_DIR}/bmake/${PETSC_ARCH}/packages</strong>
as: <br>
<strong>DYLIBPATH = /opt/SUNWspro/lib </strong></p>
<p>On Solaris the library can often be found in <strong>/opt/SUNWspro/SC4.2/lib</strong>
or <strong>/opt/SUNWspro/SC4.4/lib </strong>etc</p>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>ld64:
ERROR 33: Unresolved text symbol "MPIR_ToPointer" -- 1st
referenced by /d$ > ld64: ERROR 33: Unresolved text symbol
"MPIR_FromPointer" -- 1st referenced by $ > ld64: INFO 60: Output
file removed because of error. or When first compiled the fortran
libraries give this error: > > Error zsys.c: line 114
MPI_Comm incompatible with (void *) parameter. >n*(int*)comm
= PetscFromPointerComm(c);
<p><font color="#ff0000"><strong>Cure: </strong></font>Make
sure that the file bmake/$PETSC_ARCH/packages on the line MPI_INCLUDE
has -DUSES_INT_MPI_COMM if it is not there add it and rerun
make BOPT=g (or O etc) fortran. </p>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>[0]
PETSC ERROR: MatAssemblyBegin() line 1858 in
src/mat/interface/matrix.c Not for factored matrix
<p><font color="#ff0000"><strong>Problem: </strong></font>You
are trying to assemble a matrix that has been factored.
Normally this does not make sense, unless you are using an implace
factorization and want to reuse the space. </p>
<p><font color="#ff0000"><strong>Cure: </strong></font>Call
MatSetUnfactored(Mat); before calling the MatSetValues()
routines.</p>
</li>
<li><font color="#ff0000"><strong>Symptom:</strong> </font>Error
while running PETSc examples on IBM SP using IBM's MPI
<p>exec(): 0509-036 Cannot load program ex1 because of
the following errors:<br>
0509-023 Symbol pm_exit_value in /usr/lpp/ppe.poe/lib/libmpi.a is not
defined.<br>
0509-023 Symbol pm_exit_value in /usr/lpp/ppe.poe/lib/libmpi.a is not
defined.<br>
0509-022 Cannot load library libvtd.a[dynamic.o]. <br>
0509-026 System error: Cannot run a file that does not have a valid
format.</p>
<p><font color="#ff0000"><strong>Problem: </strong></font>This
problem occurs when the version of libc.a on your system is
different than the verison of libc.a used to build IBM's MPI.
For more information on this problem refer to 'IBM AIX PE: Hitchhikers
Guide'.</p>
<p><font color="#ff0000"><strong>Cure: </strong></font>edit
bmake/rs6000/packages and add the following to the variable
EXTERNAL_LIB <br>
EXTERNAL_LIB = /usr/lpp/ppe.poe/lib/libc.a /usr/lpp/ppe.poe/lib/libc_r.a</p>
</li>
<li><strong><font color="#ff0000">Symptom:</font></strong> Error
while compiling under Linux (more recent versions of OS), with
C++ compiler
<p>libfast in:/usr/local/petsc-2.0.21/src/sys/src<br>
mem.c:13: declaration of C function 'int getrusage(int, struct
rusage*)' conflicts with<br>
.....</p>
<p><font color="#ff0000"><strong>Problem:</strong> </font>Linux
recently added a prototype for this function, that conflicts
with the one <br>
PETSc was using</p>
<p><font color="#ff0000"><strong>Cure: </strong></font>Edit
src/sys/src/mem.c and src/sys/src/cputime.c and remove the line
beginning with<br>
extern int getrusage(....)</p>
</li>
<li><strong><font color="#ff0000">Symptom:</font></strong> Error
when building a fortran example: <br>
<br>
ld: 0706-006 Cannot find or open library file: -l petscfortran<br>
ld:open(): A file or directory in the path name does not exist.<br>
make: 1254-004 The error code from the last command is 255.<br>
make: 1254-005 Ignored error code 255 from last command.<br>
rm -f ex4f.o</li>
<p>....</p>
<p><font color="#ff0000"><strong>Problem:</strong> </font>Fortran
Libraries are not built</p>
<p><font color="#ff0000"><strong>Cure: </strong></font>Build
the fortran libraries by invoking the command<br>
make BOPT=g fortran, note any errors when compiling and send them to
petsc-maint@mcs.anl.gov</p>
<li><strong><font color="#ff0000">Symptom:</font></strong> Error
while running program<br>
<br>
> mpirun ex1<br>
p0_27137: p4_error: semget failed for setnum=%d: 0<br>
<br>
<strong><font color="#ff0000">Problem:</font></strong>
Inproperly installed or configured MPICH. Often this results
from compiling the socket based version of MPICH, with device
ch_p4 but using the mpirun associated with the shared memory version or
the other way around.<br>
<br>
<font color="#ff0000"><strong>Cure:</strong> </font>First,
make sure that you can run plain old MPI programs (those
without PETSC). Make sure you are using the correct version of
mpirun for the installed version of MPICH or reinstall MPICH<br>
.<br>
</li>
<li><strong><font color="#ff0000">Symptom</font></strong>:
Error when compiling PETSc examples<br>
<br>
> ld : -lg2c no such file<br>
<br>
<font color="#ff0000"><strong>Problem:</strong></font> Your
fortran compiler is probably using libf2c.a instead of libg2c.a<br>
<br>
<font color="#ff0000"><strong>Cure:</strong></font> Edit
bmake/${PETSC_ARCH}/variables and replace -lg2c with -lf2c<br>
<br>
</li>
<li>
<p> <font color="#ff0000"><strong>Symptom</strong>:</font>
Get the following errors when using PETSc graphics on windows/cygwin-X11 <br>
<font face="Terminal"><br>
X Error of failed request: BadMatch (invalid parameter attributes)<br>
Major opcode of failed request: 78 (X_CreateColormap)<br>
Serial number of failed request: 8<br>
Current serial number in output stream: 9<br>
<br>
<p><font color="#ff0000"><strong>Problem:</strong></font> This
problem might occur when using 25 color mode or 32bit color
mode on windows. </p>
<p><font color="#ff0000"><strong>Cure:</strong></font> This
can be fixed by changing the display settings on windows to 16
bit colors or 24 bit colors.<br>
</p>
</li>
<li><font color="#ff0000"><strong>Symptom</strong>:</font> Some
Krylov methods seem to print two residual norms per iteration,
for example <br>
<font face="Terminal"><br>
> 1198 KSP Residual norm 1.366052062216e-04<br>
> 1198 KSP Residual norm 1.931875025549e-04<br>
> 1199 KSP Residual norm 1.366026406067e-04<br>
> 1199 KSP Residual norm 1.931819426344e-04 </font>
</font> <font color="#ff0000"><strong>Problem:</strong></font>
Some Krylov methods, for example tfqmr, actually have a
"sub-iteration"<br>
of size 2 inside the loop; each of the two substeps has its own matrix
vector<br>
product and application of the preconditioner and updates the residual<br>
approximations. This is why you get this "funny" output where it looks
like <br>
there are two residual norms per iteration. You can also think of it as
twice<br>
as many iterations.</p>
</li>
<li><font color="#ff0000"><strong>Symptom</strong>:</font> The
example compiles fine - but at runtime gives the following
error:
<p>[0]PETSC ERROR: PetscInitialize_DynamicLibraries() line 63
in src/sys/src/dll/reg.c<br>
[0]PETSC ERROR: Unable to locate PETSc dynamic library
/home/balay/spetsc/lib/libg/linux/libpetsc <br>
You cannot move the dynamic libraries!<br>
or remove USE_DYNAMIC_LIBRARIES from
${PETSC_DIR}/bmake/$PETSC_ARCH/petscconf.h<br>
and rebuild libraries before moving!</p>
<p><font color="#ff0000"><strong>Problem:</strong></font> When
using DYNAMIC libraries - the libraries cannot be moved after
they are installed. This could also happen on clusters - where
the paths are different on the (run) nodes - than on the
(compile) front-end. </p>
<p><font color="#ff0000"><strong>Cure:</strong></font>
Do not use dynamic libraries & shared libraries. This can
be done by removing the flag PETSC_USE_DYNAMIC_LIBRARIES from
bmake/${PETSC_ARCH}/petscconf.h file and rebuilding the
libraries. You might also want to remove shared libraries by
invoking </p>
<p>make BOPT=g deleteshared </p>
</li>
<li><font color="#ff0000"><strong>Symptom</strong>:</font>
When running with -start_in_debugger one gets the error message
<p>PETSC: Attaching gdb to /opt/procast_mpich/procast051003/./procast of pid 31603 on display linux.:0.\
0 on machine linux.
: Can't get address for linux.
Xt error: Can't open display: linux.:0.0
<p><font color="#ff0000"><strong>Problem:</strong></font> The remote nodes
do not know where to display the debugger window.
<p><font color="#ff0000"><strong>Cure: </strong></font>Run with the additional option
-display displayname where displayname is something like mymachine.0.0
</li>
<li><font color="#ff0000"><strong>Symptom</strong>:</font>
Too many communicators (2046) in MPI_Comm_dup
<p><font color="#ff0000"><strong>Problem:</strong></font>If you create a PETSc object
with MPI_COMM_WORLD, MPI_COMM_SELF or a communicator you made yourself, PETSc needs to duplicate
the communicator (otherwise it may have conflicts between the tags PETSc uses and you use). Thus if
you create many PETSc objects you may run out of communicators.
<p><font color="#ff0000"><strong>Cure: </strong></font> Use PETSC_COMM_WORLD, PETSC_COMM_SELF,
or a communicator obtained with PetscCommDuplicate() or PetscObjectGetComm().
</li>
<li><font color="#ff0000"><strong>Symptom: </strong></font><font face="Terminal"></font>
<p><font color="#ff0000"><strong>Problem: </strong></font>
</p>
<p><font color="#ff0000"><strong>Cure: </strong></font>
</p>
</li>
</ol>
</body>
</html>
|