massivethreads / massivethreads

Light weight thread library
BSD 2-Clause "Simplified" License
62 stars 12 forks source link

Broken ExaFMM build with "pfor"-related error #3

Open keisukefukuda opened 8 years ago

keisukefukuda commented 8 years ago

Exafmm (a software which uses MassiveThraeds) fails to compile with the following error. The error does not occur with the revision 2664bcbaf30aaf52f4b60b72dd76ffb262a8838e.

$ make env MPICH_CXX=g++ MPICH_CC=gcc mpicxx -DHAVE_CONFIG_H -I. -I.. -I../include -DEXAFMM_WITH_OPENMP -DNDEBUG -DEXAFMM_LAPLACE -DEXAFMM_CARTESIAN -DEXAFMM_MASS -DEXAFMM_EXPANSION=4 -g -ffast-math -funroll-loops -fabi-version=6 -fopenmp -g -O2 -MT laplace_cartesian-fmm.o -MD -MP -MF .deps/laplace_cartesian-fmm.Tpo -c -o laplace_cartesian-fmm.o test -f 'fmm.cxx' || echo './'fmm.cxx In file included from ../include/thread.h:32:0, from ../include/logger.h:14, from ../include/bound_box.h:3, from fmm.cxx:2: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:425:2: warning: #warning "warning: there was no define for pfor, default to pfor_bisection()" [-Wcpp]

warning "warning: there was no define for pfor, default to pfor_bisection()"

^ In file included from /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:340:0, from ../include/thread.h:32, from ../include/logger.h:14, from ../include/bound_box.h:3, from fmm.cxx:2: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/mtbb/parallel_for.h: In function ‘void mtbb::parallel_for(const Range&, Body&)’: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/mtbb/parallel_for.h:80:31: error: ‘tbb’ has not been declared const Range right(left, tbb::split()); ^ In file included from ../include/thread.h:32:0, from ../include/logger.h:14, from ../include/bound_box.h:3, from fmm.cxx:2: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h: At global scope: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:353:65: error: ‘std::function’ has not been declared pfor_bisection_aux(T first, T a, T b, T step, T grainsize, std::function<void (T, T)> f, const char * file, int line) { ^ /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:353:73: error: expected ‘,’ or ‘...’ before ‘<’ token pfor_bisection_aux(T first, T a, T b, T step, T grainsize, std::function<void (T, T)> f, const char * file, int line) { ^ In file included from ../include/thread.h:32:0, from ../include/logger.h:14, from ../include/bound_box.h:3, from fmm.cxx:2: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h: In lambda function: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:359:5: error: ‘f’ was not declared in this scope createtask0(spawn pfor_bisection_aux(first, a, c, step, grainsize, f, file, line), file, line); ^ /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:359:5: error: ‘file’ was not declared in this scope createtask0(spawn pfor_bisection_aux(first, a, c, step, grainsize, f, file, line), file, line); ^ /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:359:5: error: ‘line’ was not declared in this scope createtask0(spawn pfor_bisection_aux(first, a, c, step, grainsize, f, file, line), file, line); ^ /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h: In function ‘void pfor_bisection_aux(T, T, T, T, T, int)’: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:359:5: error: ‘file’ was not declared in this scope createtask0(spawn pfor_bisection_aux(first, a, c, step, grainsize, f, file, line), file, line); ^ /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:359:5: error: ‘line’ was not declared in this scope createtask0(spawn pfor_bisection_aux(first, a, c, step, grainsize, f, file, line), file, line); ^ /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:360:5: error: ‘f’ was not declared in this scope call_task(spawn pfor_bisection_aux(first, c, b, step, grainsize, f, file, line)); ^ In file included from ../include/thread.h:32:0, from ../include/logger.h:14, from ../include/bound_box.h:3, from fmm.cxx:2: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h: At global scope: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:371:65: error: ‘std::function’ has not been declared pfor_allatonce_aux(T first, T a, T b, T step, T grainsize, std::function<void (T, T)> f, const char * file, int line) { ^ /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:371:73: error: expected ‘,’ or ‘...’ before ‘<’ token pfor_allatonce_aux(T first, T a, T b, T step, T grainsize, std::function<void (T, T)> f, const char * file, int line) { ^ In file included from ../include/thread.h:32:0, from ../include/logger.h:14, from ../include/bound_box.h:3, from fmm.cxx:2: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h: In function ‘void pfor_allatonce_aux(T, T, T, T, T, int)’: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:378:7: error: ‘file’ was not declared in this scope createtask0(spawn f(first + ia * step, first + ib * step), file, line); ^ /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:378:7: error: ‘line’ was not declared in this scope createtask0(spawn f(first + ia * step, first + ib * step), file, line); ^ make: *\ [laplace_cartesian-fmm.o] Error 1

zanton commented 8 years ago

Hi Fukuda-san,

I have just fixed a bug of pfor interface. pfor should not have affected programs that do not use it, but I didn't pay enough attention to that. I have just put an if condition to isolate pfor mechanism from the rest. Hope this will fix your ExaFMM error. I'm so sorry for late response.

An

On Fri, May 20, 2016 at 5:23 PM, Keisuke Fukuda notifications@github.com wrote:

Exafmm (a software which uses MassiveThraeds) fails to compile with the following error. The error does not occur with the revision 2664bcb https://github.com/massivethreads/massivethreads/commit/2664bcbaf30aaf52f4b60b72dd76ffb262a8838e .

$ make env MPICH_CXX=g++ MPICH_CC=gcc mpicxx -DHAVE_CONFIG_H -I. -I.. -I../include -DEXAFMM_WITH_OPENMP -DNDEBUG -DEXAFMM_LAPLACE -DEXAFMM_CARTESIAN -DEXAFMM_MASS -DEXAFMM_EXPANSION=4 -g -ffast-math -funroll-loops -fabi-version=6 -fopenmp -g -O2 -MT laplace_cartesian-fmm.o -MD -MP -MF .deps/laplace_cartesian-fmm.Tpo -c -o laplace_cartesian-fmm.o test -f 'fmm.cxx' || echo './'fmm.cxx In file included from ../include/thread.h:32:0, from ../include/logger.h:14, from ../include/bound_box.h:3, from fmm.cxx:2: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:425:2: warning: #warning "warning: there was no define for pfor, default to pfor_bisection()" [-Wcpp]

warning "warning: there was no define for pfor, default to

pfor_bisection()" ^ In file included from /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:340:0, from ../include/thread.h:32, from ../include/logger.h:14, from ../include/bound_box.h:3, from fmm.cxx:2: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/mtbb/parallel_for.h: In function ‘void mtbb::parallel_for(const Range&, Body&)’: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/mtbb/parallel_for.h:80:31: error: ‘tbb’ has not been declared const Range right(left, tbb::split()); ^ In file included from ../include/thread.h:32:0, from ../include/logger.h:14, from ../include/bound_box.h:3, from fmm.cxx:2: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h: At global scope: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:353:65: error: ‘std::function’ has not been declared pfor_bisection_aux(T first, T a, T b, T step, T grainsize, std::function f, const char * file, int line) { ^ /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:353:73: error: expected ‘,’ or ‘...’ before ‘<’ token pfor_bisection_aux(T first, T a, T b, T step, T grainsize, std::function f, const char * file, int line) { ^ In file included from ../include/thread.h:32:0, from ../include/logger.h:14, from ../include/bound_box.h:3, from fmm.cxx:2: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h: In lambda function: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:359:5: error: ‘f’ was not declared in this scope createtask0(spawn pfor_bisection_aux(first, a, c, step, grainsize, f, file, line), file, line); ^ /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:359:5: error: ‘file’ was not declared in this scope createtask0(spawn pfor_bisection_aux(first, a, c, step, grainsize, f, file, line), file, line); ^ /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:359:5: error: ‘line’ was not declared in this scope createtask0(spawn pfor_bisection_aux(first, a, c, step, grainsize, f, file, line), file, line); ^ /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h: In function ‘void pfor_bisection_aux(T, T, T, T, T, int)’: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:359:5: error: ‘file’ was not declared in this scope createtask0(spawn pfor_bisection_aux(first, a, c, step, grainsize, f, file, line), file, line); ^ /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:359:5: error: ‘line’ was not declared in this scope createtask0(spawn pfor_bisection_aux(first, a, c, step, grainsize, f, file, line), file, line); ^ /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:360:5: error: ‘f’ was not declared in this scope call_task(spawn pfor_bisection_aux(first, c, b, step, grainsize, f, file, line)); ^ In file included from ../include/thread.h:32:0, from ../include/logger.h:14, from ../include/bound_box.h:3, from fmm.cxx:2: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h: At global scope: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:371:65: error: ‘std::function’ has not been declared pfor_allatonce_aux(T first, T a, T b, T step, T grainsize, std::function f, const char * file, int line) { ^ /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:371:73: error: expected ‘,’ or ‘...’ before ‘<’ token pfor_allatonce_aux(T first, T a, T b, T step, T grainsize, std::function f, const char * file, int line) { ^ In file included from ../include/thread.h:32:0, from ../include/logger.h:14, from ../include/bound_box.h:3, from fmm.cxx:2: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h: In function ‘void pfor_allatonce_aux(T, T, T, T, T, int)’: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:378:7: error: ‘file’ was not declared in this scope createtask0(spawn f(first + ia * step, first + ib * step), file, line); ^ /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:378:7: error: ‘line’ was not declared in this scope createtask0(spawn f(first + ia * step, first + ib * step), file, line); ^ make: *\ [laplace_cartesian-fmm.o] Error 1

— You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub https://github.com/massivethreads/massivethreads/issues/3

東京大学大学院 情報理工学系研究科 電子情報学専攻 田浦研究室 博士1年 Huynh Ngoc An (フィン ゴク アン) Mail: huynh@eidos.ic.i.u-tokyo.ac.jp

keisukefukuda commented 8 years ago

I will try it out! Thanks!

On Tue, Jun 14, 2016 at 4:30 PM, An Huynh notifications@github.com wrote:

Hi Fukuda-san,

I have just fixed a bug of pfor interface. pfor should not have affected programs that do not use it, but I didn't pay enough attention to that. I have just put an if condition to isolate pfor mechanism from the rest. Hope this will fix your ExaFMM error. I'm so sorry for late response.

An

On Fri, May 20, 2016 at 5:23 PM, Keisuke Fukuda notifications@github.com wrote:

Exafmm (a software which uses MassiveThraeds) fails to compile with the following error. The error does not occur with the revision 2664bcb < https://github.com/massivethreads/massivethreads/commit/2664bcbaf30aaf52f4b60b72dd76ffb262a8838e

.

$ make env MPICH_CXX=g++ MPICH_CC=gcc mpicxx -DHAVE_CONFIG_H -I. -I.. -I../include -DEXAFMM_WITH_OPENMP -DNDEBUG -DEXAFMM_LAPLACE -DEXAFMM_CARTESIAN -DEXAFMM_MASS -DEXAFMM_EXPANSION=4 -g -ffast-math -funroll-loops -fabi-version=6 -fopenmp -g -O2 -MT laplace_cartesian-fmm.o -MD -MP -MF .deps/laplace_cartesian-fmm.Tpo -c -o laplace_cartesian-fmm.o test -f 'fmm.cxx' || echo './'fmm.cxx In file included from ../include/thread.h:32:0, from ../include/logger.h:14, from ../include/bound_box.h:3, from fmm.cxx:2:

/home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:425:2: warning: #warning "warning: there was no define for pfor, default to pfor_bisection()" [-Wcpp]

warning "warning: there was no define for pfor, default to

pfor_bisection()" ^ In file included from

/home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:340:0, from ../include/thread.h:32, from ../include/logger.h:14, from ../include/bound_box.h:3, from fmm.cxx:2: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/mtbb/parallel_for.h: In function ‘void mtbb::parallel_for(const Range&, Body&)’:

/home/users/fukuda/.wrenchset/gcc-4.9.3/include/mtbb/parallel_for.h:80:31: error: ‘tbb’ has not been declared const Range right(left, tbb::split()); ^ In file included from ../include/thread.h:32:0, from ../include/logger.h:14, from ../include/bound_box.h:3, from fmm.cxx:2: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h: At global scope:

/home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:353:65: error: ‘std::function’ has not been declared pfor_bisection_aux(T first, T a, T b, T step, T grainsize, std::function f, const char * file, int line) { ^

/home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:353:73: error: expected ‘,’ or ‘...’ before ‘<’ token pfor_bisection_aux(T first, T a, T b, T step, T grainsize, std::function f, const char * file, int line) { ^ In file included from ../include/thread.h:32:0, from ../include/logger.h:14, from ../include/bound_box.h:3, from fmm.cxx:2: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h: In lambda function:

/home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:359:5: error: ‘f’ was not declared in this scope createtask0(spawn pfor_bisection_aux(first, a, c, step, grainsize, f, file, line), file, line); ^

/home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:359:5: error: ‘file’ was not declared in this scope createtask0(spawn pfor_bisection_aux(first, a, c, step, grainsize, f, file, line), file, line); ^

/home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:359:5: error: ‘line’ was not declared in this scope createtask0(spawn pfor_bisection_aux(first, a, c, step, grainsize, f, file, line), file, line); ^ /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h: In function ‘void pfor_bisection_aux(T, T, T, T, T, int)’:

/home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:359:5: error: ‘file’ was not declared in this scope createtask0(spawn pfor_bisection_aux(first, a, c, step, grainsize, f, file, line), file, line); ^

/home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:359:5: error: ‘line’ was not declared in this scope createtask0(spawn pfor_bisection_aux(first, a, c, step, grainsize, f, file, line), file, line); ^

/home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:360:5: error: ‘f’ was not declared in this scope call_task(spawn pfor_bisection_aux(first, c, b, step, grainsize, f, file, line)); ^ In file included from ../include/thread.h:32:0, from ../include/logger.h:14, from ../include/bound_box.h:3, from fmm.cxx:2: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h: At global scope:

/home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:371:65: error: ‘std::function’ has not been declared pfor_allatonce_aux(T first, T a, T b, T step, T grainsize, std::function f, const char * file, int line) { ^

/home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:371:73: error: expected ‘,’ or ‘...’ before ‘<’ token pfor_allatonce_aux(T first, T a, T b, T step, T grainsize, std::function f, const char * file, int line) { ^ In file included from ../include/thread.h:32:0, from ../include/logger.h:14, from ../include/bound_box.h:3, from fmm.cxx:2: /home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h: In function ‘void pfor_allatonce_aux(T, T, T, T, T, int)’:

/home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:378:7: error: ‘file’ was not declared in this scope createtask0(spawn f(first + ia * step, first + ib * step), file, line); ^

/home/users/fukuda/.wrenchset/gcc-4.9.3/include/tpswitch/tpswitch.h:378:7: error: ‘line’ was not declared in this scope createtask0(spawn f(first + ia * step, first + ib * step), file, line); ^ make: *\ [laplace_cartesian-fmm.o] Error 1

— You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub https://github.com/massivethreads/massivethreads/issues/3

東京大学大学院 情報理工学系研究科 電子情報学専攻 田浦研究室 博士1年 Huynh Ngoc An (フィン ゴク アン) Mail: huynh@eidos.ic.i.u-tokyo.ac.jp

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/massivethreads/massivethreads/issues/3#issuecomment-225801484, or mute the thread https://github.com/notifications/unsubscribe/AABHUe0XRmBOrnbdLo9vC3LH19JjfqsIks5qLlisgaJpZM4Ii-xm .

FUKUDA, Keisuke <福田圭祐> Tokyo, Japan Email: keisukefukuda@gmail.com