View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001759 | OpenFOAM | Bug | public | 2015-06-22 21:21 | 2015-06-23 11:28 |
Reporter | Assigned To | henry | |||
Priority | normal | Severity | major | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Platform | ppc64el | OS | Ubuntu/Debian | OS Version | 15.04 |
Summary | 0001759: OpenFOAM does not build on ppc64le architecture | ||||
Description | Ppc64le is the new ABI for POWER architecture. It now runs on little endian mode, as started to run on POWER8 processors. For more information about it, check [1]. Currently openFOAM does not build on this architecture, and says that ppc64le (from uname -m) architecture is not known. I am adding a patch that adds initial support for this architecture. [1] https://wiki.debian.org/ppc64el#ABI_Documentation | ||||
Steps To Reproduce | # wmake all | ||||
Additional Information | If you want access to a ppc64el machine, we are please to give you one. Just ask it at http://openpower.ic.unicamp.br/minicloud/ and says that this is related to OpenFOAM porting. | ||||
Tags | No tags attached. | ||||
2015-06-22 21:21
|
enable_ppc64el_patch.patch (5,503 bytes)
Index: OpenFOAM-2.4.0/etc/config/settings.sh =================================================================== --- OpenFOAM-2.4.0.orig/etc/config/settings.sh 2015-05-22 05:50:30.000000000 -0400 +++ OpenFOAM-2.4.0/etc/config/settings.sh 2015-06-22 16:05:15.443587651 -0400 @@ -135,6 +135,16 @@ export WM_LDFLAGS='-m64' ;; + ppc64le) + WM_ARCH=linuxPPC64le + export WM_COMPILER_LIB_ARCH=64 + export WM_CC='gcc' + export WM_CXX='g++' + export WM_CFLAGS='-m64 -fPIC' + export WM_CXXFLAGS='-m64 -fPIC' + export WM_LDFLAGS='-m64' + ;; + *) echo Unknown processor type `uname -m` for Linux 1>&2 ;; Index: OpenFOAM-2.4.0/wmake/rules/linuxPPC64leGcc/X =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ OpenFOAM-2.4.0/wmake/rules/linuxPPC64leGcc/X 2015-06-22 16:11:53.351656785 -0400 @@ -0,0 +1,3 @@ +XFLAGS = +XINC = $(XFLAGS) -I/usr/X11R6/include +XLIBS = -L/usr/X11R6/lib64 -lXext -lX11 Index: OpenFOAM-2.4.0/wmake/rules/linuxPPC64leGcc/c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ OpenFOAM-2.4.0/wmake/rules/linuxPPC64leGcc/c 2015-06-22 16:11:53.771656890 -0400 @@ -0,0 +1,16 @@ +.SUFFIXES: .c .h + +cWARN = -Wall + +cc = gcc -m64 -mcpu=power8 + +include $(RULES)/c$(WM_COMPILE_OPTION) + +cFLAGS = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC + +ctoo = $(WM_SCHEDULER) $(cc) $(cFLAGS) -c $$SOURCE -o $@ + +LINK_LIBS = $(cDBUG) + +LINKLIBSO = $(cc) -shared +LINKEXE = $(cc) -Xlinker --add-needed -Xlinker -z -Xlinker nodefs Index: OpenFOAM-2.4.0/wmake/rules/linuxPPC64leGcc/c++ =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ OpenFOAM-2.4.0/wmake/rules/linuxPPC64leGcc/c++ 2015-06-22 16:11:54.019656952 -0400 @@ -0,0 +1,21 @@ +.SUFFIXES: .C .cxx .cc .cpp + +c++WARN = -Wall -Wextra -Wno-unused-parameter -Wold-style-cast + +CC = g++ -m64 -mcpu=power8 + +include $(RULES)/c++$(WM_COMPILE_OPTION) + +ptFLAGS = -DNoRepository -ftemplate-depth-100 + +c++FLAGS = $(GFLAGS) $(c++WARN) $(c++OPT) $(c++DBUG) $(ptFLAGS) $(LIB_HEADER_DIRS) -fPIC + +Ctoo = $(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $$SOURCE -o $@ +cxxtoo = $(Ctoo) +cctoo = $(Ctoo) +cpptoo = $(Ctoo) + +LINK_LIBS = $(c++DBUG) + +LINKLIBSO = $(CC) $(c++FLAGS) -shared +LINKEXE = $(CC) $(c++FLAGS) -Xlinker --add-needed Index: OpenFOAM-2.4.0/wmake/rules/linuxPPC64leGcc/c++Debug =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ OpenFOAM-2.4.0/wmake/rules/linuxPPC64leGcc/c++Debug 2015-06-22 16:11:54.447657059 -0400 @@ -0,0 +1,2 @@ +c++DBUG = -ggdb3 -DFULLDEBUG +c++OPT = -O0 -fdefault-inline Index: OpenFOAM-2.4.0/wmake/rules/linuxPPC64leGcc/c++Opt =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ OpenFOAM-2.4.0/wmake/rules/linuxPPC64leGcc/c++Opt 2015-06-22 16:11:54.735657131 -0400 @@ -0,0 +1,2 @@ +c++DBUG = +c++OPT = -O3 Index: OpenFOAM-2.4.0/wmake/rules/linuxPPC64leGcc/c++Prof =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ OpenFOAM-2.4.0/wmake/rules/linuxPPC64leGcc/c++Prof 2015-06-22 16:11:55.123657228 -0400 @@ -0,0 +1,2 @@ +c++DBUG = -pg +c++OPT = -O2 Index: OpenFOAM-2.4.0/wmake/rules/linuxPPC64leGcc/cDebug =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ OpenFOAM-2.4.0/wmake/rules/linuxPPC64leGcc/cDebug 2015-06-22 16:11:55.515657326 -0400 @@ -0,0 +1,2 @@ +cDBUG = -ggdb -DFULLDEBUG +cOPT = -O1 -fdefault-inline -finline-functions Index: OpenFOAM-2.4.0/wmake/rules/linuxPPC64leGcc/cOpt =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ OpenFOAM-2.4.0/wmake/rules/linuxPPC64leGcc/cOpt 2015-06-22 16:11:55.871657415 -0400 @@ -0,0 +1,2 @@ +cDBUG = +cOPT = -O3 Index: OpenFOAM-2.4.0/wmake/rules/linuxPPC64leGcc/cProf =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ OpenFOAM-2.4.0/wmake/rules/linuxPPC64leGcc/cProf 2015-06-22 16:11:56.207657499 -0400 @@ -0,0 +1,2 @@ +cDBUG = -pg +cOPT = -O2 Index: OpenFOAM-2.4.0/wmake/rules/linuxPPC64leGcc/general =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ OpenFOAM-2.4.0/wmake/rules/linuxPPC64leGcc/general 2015-06-22 16:11:56.367657539 -0400 @@ -0,0 +1,10 @@ +CPP = cpp -traditional-cpp $(GFLAGS) +LD = ld -m elf64lppc + +PROJECT_LIBS = -l$(WM_PROJECT) -ldl + +include $(GENERAL_RULES)/standard + +include $(RULES)/X +include $(RULES)/c +include $(RULES)/c++ Index: OpenFOAM-2.4.0/wmake/rules/linuxPPC64leGcc/mplibHPMPI =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ OpenFOAM-2.4.0/wmake/rules/linuxPPC64leGcc/mplibHPMPI 2015-06-22 16:11:56.659657612 -0400 @@ -0,0 +1,3 @@ +PFLAGS = +PINC = -I$(MPI_ARCH_PATH)/include -D_MPICC_H +PLIBS = -L$(MPI_ARCH_PATH)/lib/linux_amd64 -lmpi |
|
I am happy to include support for the ppc64le architecture. What is the performance of OpenFOAM like on POWER8 compared to Xeon for example? |
|
Resolved by commit a5a5397de5057899778f23081ed5eb5b76ed6842 |
Date Modified | Username | Field | Change |
---|---|---|---|
2015-06-22 21:21 |
|
New Issue | |
2015-06-22 21:21 |
|
File Added: enable_ppc64el_patch.patch | |
2015-06-22 21:32 | henry | Note Added: 0004980 | |
2015-06-23 11:28 | henry | Note Added: 0004982 | |
2015-06-23 11:28 | henry | Status | new => resolved |
2015-06-23 11:28 | henry | Resolution | open => fixed |
2015-06-23 11:28 | henry | Assigned To | => henry |