Adding inner loop for performance tests
git-svn-id: https://www.dynare.org/svn/dynare/trunk@2716 ac1d8469-bf42-47a9-8791-bf33cf982152time-shift
parent
3260ba476e
commit
c0e2ee809c
|
@ -1,83 +1,91 @@
|
|||
# $Id: Makefile 531 2005-11-30 13:49:48Z kamenik $
|
||||
# Copyright 2005, Ondra Kamenik
|
||||
|
||||
DEBUG = yes
|
||||
|
||||
LD_LIBS := -llapack -lcblas -lf77blas -latlas -lg2c
|
||||
CC_FLAGS := -DMATLAB -DWINDOWS -DNO_BLAS_H -DNO_LAPACK_H \
|
||||
-Wall -I../../gensylv/cc -I../cc \
|
||||
-Ic:/"Program Files"/MATLAB_SV71/extern/include
|
||||
|
||||
ifeq ($(DEBUG),yes)
|
||||
CC_FLAGS := -DDEBUG $(CC_FLAGS) -g
|
||||
else
|
||||
CC_FLAGS := $(CC_FLAGS) -O2
|
||||
endif
|
||||
|
||||
# Added by GP
|
||||
# LDFLAGS := -llapack -lcblas -lf77blas -latlas -lg2c -lstdc++ -lmingw32
|
||||
LDFLAGS := -Wl,--library-path $(LD_LIBRARY_PATH) \
|
||||
-Wl,-L'f:/MinGW/lib' \
|
||||
-Wl,-L"c:/Program Files"/MATLAB_SV71/extern/lib/win32/microsoft/ \
|
||||
-Wl,-llibmex -Wl,-llibmx -Wl,-llibmwlapack -Wl,-llibdflapack \
|
||||
-lg2c -lmingw32 -lstdc++ $(LDFLAGS)
|
||||
|
||||
# -Wl,-L'f:/CygWin/usr/local/atlas/lib' \
|
||||
# -Wl,-L'f:/CygWin/lib' \
|
||||
# $(LDFLAGS)
|
||||
LD_LIBS :=$(LDFLAGS)
|
||||
# end add
|
||||
|
||||
matrix_interface := GeneralMatrix Vector SylvException
|
||||
matobjs := $(patsubst %, ../../gensylv/cc/%.o, $(matrix_interface))
|
||||
mathsource := $(patsubst %, ../../gensylv/cc/%.h, $(matrix_interface))
|
||||
matcppsource := $(patsubst %, ../../gensylv/cc/%.cpp, $(matrix_interface))
|
||||
# cppsource := $(patsubst %.cweb,%.cpp,$(cwebsource))
|
||||
kalmancppsource := $(wildcard ../cc/*.cpp)
|
||||
kalmanhsource := $(wildcard ../cc/*.h)
|
||||
kalmanobjects := $(patsubst %.cpp,%.o,$(kalmancppsource))
|
||||
cppsource := $(wildcard *.cpp)
|
||||
hsource := $(wildcard *.h)
|
||||
objects := $(patsubst %.cpp,%.o,$(cppsource))
|
||||
hwebsource := $(wildcard *.hweb)
|
||||
cwebsource := $(wildcard *.cweb)
|
||||
|
||||
dummy.ch:
|
||||
touch dummy.ch
|
||||
|
||||
# %.cpp: %.cweb dummy.ch
|
||||
# ctangle -bhp $*.cweb dummy.ch $*.cpp
|
||||
|
||||
# %.h: %.hweb dummy.ch
|
||||
# ctangle -bhp $*.hweb dummy.ch $*.h
|
||||
|
||||
#%.o: %.cpp $(hsource) $(cppsource) #$(kalmanhsource) $(mathsource)
|
||||
|
||||
%.o: %.cpp $(hsource) $(cppsource)
|
||||
c++ $(CC_FLAGS) -c $*.cpp
|
||||
|
||||
|
||||
kalmanlib.a: $(objects) #$(kalmanobjects) $(matobjs)
|
||||
ar cr kalmanlib.a $(objects) $(kalmanobjects) $(matobjs)
|
||||
ranlib kalmanlib.a
|
||||
|
||||
kalman_smoother_dll.dll: kalman_smoother.o kalmanlib.a #$(hsource) $(cppsource)
|
||||
gcc -shared $(CC_FLAGS) -o kalman_smoother_dll.dll kalman_smoother.o \
|
||||
kalmanlib.a $(LD_LIBS)
|
||||
|
||||
kalman_filter_dll.dll: kalman_filters.o kalmanlib.a # $(hsource) $(cppsource)
|
||||
gcc -shared $(CC_FLAGS) -o kalman_filter_dll.dll kalman_filters.o \
|
||||
kalmanlib.a $(LD_LIBS)
|
||||
|
||||
all: $(objects) kalmanlib.a kalman_smoother_dll.dll kalman_filter_dll.dll # $(cppsource) $(hsource) $(kalmanhsource) $(kalmancppsource)
|
||||
|
||||
doc: main.web $(hwebsource) $(cwebsource)
|
||||
cweave -bhp main.web
|
||||
pdftex main
|
||||
mv main.pdf ts.pdf
|
||||
|
||||
clear:
|
||||
rm -f *.o
|
||||
rm -f *.{pdf,dvi,log,scn,idx,toc}
|
||||
# rm -f *.cpp
|
||||
# rm -f *.h
|
||||
# $Id: Makefile 531 2005-11-30 13:49:48Z kamenik $
|
||||
# Copyright 2005, Ondra Kamenik
|
||||
|
||||
#DEBUG = yes
|
||||
|
||||
LD_LIBS := -llapack -lcblas -lf77blas -latlas -lg2c
|
||||
CC_FLAGS := -DMATLAB -DWINDOWS -DNO_BLAS_H -DNO_LAPACK_H \
|
||||
-Wall -I../../gensylv/cc -I../cc \
|
||||
-Ic:/"Program Files"/MATLAB_SV71/extern/include
|
||||
|
||||
ifeq ($(DEBUG),yes)
|
||||
CC_FLAGS := -DDEBUG $(CC_FLAGS) -g
|
||||
else
|
||||
CC_FLAGS := $(CC_FLAGS) -O2
|
||||
# CC_FLAGS := -DTIMING_LOOP $(CC_FLAGS) -O2
|
||||
endif
|
||||
|
||||
# Added by GP
|
||||
# LDFLAGS := -llapack -lcblas -lf77blas -latlas -lg2c -lstdc++ -lmingw32
|
||||
LDFLAGS := -Wl,--library-path $(LD_LIBRARY_PATH) \
|
||||
-Wl,-L'f:/MinGW/lib' \
|
||||
-Wl,-L"c:/Program Files"/MATLAB_SV71/extern/lib/win32/microsoft/ \
|
||||
-Wl,-llibmex -Wl,-llibmx -Wl,-llibmwlapack -Wl,-llibdflapack \
|
||||
-lg2c -lmingw32 -lstdc++ $(LDFLAGS)
|
||||
|
||||
# -Wl,-L'f:/CygWin/usr/local/atlas/lib' \
|
||||
# -Wl,-L'f:/CygWin/lib' \
|
||||
# $(LDFLAGS)
|
||||
LD_LIBS :=$(LDFLAGS)
|
||||
# end add
|
||||
|
||||
matrix_interface := GeneralMatrix Vector SylvException
|
||||
matobjs := $(patsubst %, ../../gensylv/cc/%.o, $(matrix_interface))
|
||||
mathsource := $(patsubst %, ../../gensylv/cc/%.h, $(matrix_interface))
|
||||
matcppsource := $(patsubst %, ../../gensylv/cc/%.cpp, $(matrix_interface))
|
||||
# cppsource := $(patsubst %.cweb,%.cpp,$(cwebsource))
|
||||
kalmancppsource := $(wildcard ../cc/*.cpp)
|
||||
kalmanhsource := $(wildcard ../cc/*.h)
|
||||
kalmanobjects := $(patsubst %.cpp,%.o,$(kalmancppsource))
|
||||
cppsource := $(wildcard *.cpp)
|
||||
hsource := $(wildcard *.h)
|
||||
objects := $(patsubst %.cpp,%.o,$(cppsource))
|
||||
hwebsource := $(wildcard *.hweb)
|
||||
cwebsource := $(wildcard *.cweb)
|
||||
|
||||
dummy.ch:
|
||||
touch dummy.ch
|
||||
|
||||
# %.cpp: %.cweb dummy.ch
|
||||
# ctangle -bhp $*.cweb dummy.ch $*.cpp
|
||||
|
||||
# %.h: %.hweb dummy.ch
|
||||
# ctangle -bhp $*.hweb dummy.ch $*.h
|
||||
|
||||
#%.o: %.cpp $(hsource) $(cppsource) #$(kalmanhsource) $(mathsource)
|
||||
|
||||
%.o: %.cpp $(hsource) $(cppsource)
|
||||
c++ $(CC_FLAGS) -c $*.cpp
|
||||
|
||||
|
||||
kalmanlib.a: $(objects) # $(matobjs) #$(kalmanobjects)
|
||||
ar cr kalmanlib.a $(kalmanobjects) $(matobjs) # $(objects)
|
||||
ranlib kalmanlib.a
|
||||
|
||||
kalman_smoother_dll.dll: kalman_smoother.o kalmanlib.a #$(hsource) $(cppsource)
|
||||
gcc -shared $(CC_FLAGS) -o kalman_smoother_dll.dll kalman_smoother.o \
|
||||
kalmanlib.a $(LD_LIBS)
|
||||
|
||||
kalman_filter_dll.dll: kalman_filters.o kalmanlib.a # $(hsource) $(cppsource)
|
||||
gcc -shared $(CC_FLAGS) -o kalman_filter_dll.dll kalman_filters.o \
|
||||
kalmanlib.a $(LD_LIBS)
|
||||
|
||||
all: $(objects) kalmanlib.a kalman_smoother_dll.dll kalman_filter_dll.dll # $(cppsource) $(hsource) $(kalmanhsource) $(kalmancppsource)
|
||||
|
||||
kalman_filter_loop.o: kalman_filters.cpp
|
||||
c++ -DTIMING_LOOP $(CC_FLAGS) -o kalman_filter_loop.o kalman_filters.cpp
|
||||
|
||||
#kalman_filter_loop.dll: kalman_filter_loop.o kalmanlib.a # $(hsource) $(cppsource)
|
||||
# gcc -shared -DTIMING_LOOP $(CC_FLAGS) -o kalman_filter_loop.dll kalman_filter_loop.o \
|
||||
# kalmanlib.a $(LD_LIBS)
|
||||
|
||||
doc: main.web $(hwebsource) $(cwebsource)
|
||||
cweave -bhp main.web
|
||||
pdftex main
|
||||
mv main.pdf ts.pdf
|
||||
|
||||
clear:
|
||||
rm -f *.o
|
||||
rm -f *.{pdf,dvi,log,scn,idx,toc}
|
||||
# rm -f *.cpp
|
||||
# rm -f *.h
|
||||
|
|
|
@ -71,7 +71,8 @@
|
|||
extern "C" {
|
||||
void mexFunction(int nlhs, mxArray* plhs[],
|
||||
int nrhs, const mxArray* prhs[])
|
||||
{
|
||||
{
|
||||
|
||||
if (nrhs < 9 || nrhs > 11)
|
||||
mexErrMsgTxt("Must have 9, 10 or 11 input parameters.\n");
|
||||
if (nlhs < 1 || nlhs > 4)
|
||||
|
@ -123,6 +124,10 @@ extern "C" {
|
|||
init = new StateInit(P, a.getData());
|
||||
}
|
||||
// fork, create objects and do filtering
|
||||
#ifdef TIMING_LOOP
|
||||
for (int tt=0;tt<10000;++tt)
|
||||
{
|
||||
#endif
|
||||
KalmanTask kt(Y, Z, H, T, R, Q, *init);
|
||||
if (uni)
|
||||
{
|
||||
|
@ -135,6 +140,10 @@ extern "C" {
|
|||
{
|
||||
loglik = kt.filter(per, d, (start-1), vll);
|
||||
}
|
||||
#ifdef TIMING_LOOP
|
||||
}
|
||||
//mexPrintf("kalman_filter: finished 10,000 loops");
|
||||
#endif
|
||||
// destroy init
|
||||
delete init;
|
||||
|
||||
|
@ -160,12 +169,17 @@ extern "C" {
|
|||
mxll[j]=(*vll)[j];
|
||||
}
|
||||
|
||||
} catch (const TSException& e) {
|
||||
}
|
||||
catch (const TSException& e)
|
||||
{
|
||||
mexErrMsgTxt(e.getMessage());
|
||||
} catch (SylvException& e) {
|
||||
char mes[300];
|
||||
e.printMessage(mes, 299);
|
||||
mexErrMsgTxt(mes);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
catch (SylvException& e)
|
||||
{
|
||||
char mes[300];
|
||||
e.printMessage(mes, 299);
|
||||
mexErrMsgTxt(mes);
|
||||
}
|
||||
|
||||
} // mexFunction
|
||||
}; // extern 'C'
|
||||
|
|
Loading…
Reference in New Issue