Commit 6d0f7eee authored by MIJIEUX Thomas's avatar MIJIEUX Thomas

Update org

parent d3432670
......@@ -3,6 +3,10 @@
#+TITLE: Fabulous installation procedure (Plafrim2)
#+NAME: fabulous_root
#+BEGIN_SRC shell
echo ${HOME}/fabulous/
#+END_SRC
* INSTALLATION on PLAFRIM2 with chameleon
** With SPACK
......@@ -80,14 +84,11 @@
chmod +x ./install-fabulous.sh
./install-fabulous.sh
#+end_src
* COMPILATION for development purpose
* DEVELOPER NOTICE
:PROPERTIES:
:header-args:shell: :var WORKDIR=fabulous_root :session *fabulous-build* :results silent
:END:
#+NAME: fabulous_root
| /home/tmijieux/fabulous/ |
** Compilation
You may want to load mkl into environement:
#+BEGIN_SRC shell
source /opt/intel/mkl/bin/mklvars.sh intel64
......@@ -114,3 +115,38 @@ cmake .. -DCMAKE_BUILD_TYPE=Debug \
cd ${WORKDIR}/build
make -j4
#+END_SRC
** Autocompletion
To have autocompletion work correctly in emacs (company with clang extension),
you can use the scripts from https://github.com/Rip-Rip/clang_complete :
file:~/fabulous/scripts/cc_args.py
You may want to reset the build system (in order to flush cmake cache)
#+BEGIN_SRC shell
rm -rf ${WORKDIR}/build/*
#+END_SRC
Setup the build system with cc_args as a compiler:
#+BEGIN_SRC shell
mkdir -p ${WORKDIR}/build
cd ${WORKDIR}/build
CC="${WORKDIR}/scripts/cc_args.py gcc" CXX="${WORKDIR}/scripts/cc_args.py g++" \
cmake .. -DCMAKE_BUILD_TYPE=Debug \
-DFABULOUS_DEBUG_MODE=ON \
-DFABULOUS_LAPACKE_NANCHECK=OFF # \
# -DCHAMELEON_DIR=$(spack location -i chameleon)
#+END_SRC
Carry out the compilation
#+BEGIN_SRC shell
make -j4
#+END_SRC
cc_args have generated .clang_complete files.
We gather them into one file. Notice that the line with -std=c99 is removed
because fabulous source have both c++11 and c99 files but passing both option to clang
would be an error so we prefer c++11 which is the dominant language of the the project.
#+BEGIN_SRC shell
find ${WORKDIR}/build -name '.clang_complete' | xargs cat | sort | uniq \
| grep -v c99 > ${WORKDIR}/.clang_complete
#+END_SRC
......@@ -199,3 +199,80 @@ ggplot(df, aes(x=nb_mvp)) +
CLOCK: [2017-05-11 Thu 11:24]--[2017-05-11 Thu 11:28] => 0:04
:END:
[2017-05-11 Thu 11:24]
*** 2017-05-14 Sunday
**** Add instrumentation of orthogonalization code to measure number of flops
instrumented code is the following files
- file:~/fabulous/include/fabulous/orthogonalization/RUHE.hpp
- file:~/fabulous/include/fabulous/orthogonalization/RUHE_IB.hpp
- file:~/fabulous/include/fabulous/orthogonalization/BLOCK_common.hpp
#+BEGIN_SRC cpp
// ...
int64_t _nb_flops; // orthogonalizer class member
// ...
lapacke::gemm(m, n, k, /* ... */);
_nb_flops += lapacke::gemm_flops<S>(m, n, k);
// ...
#+END_SRC
flops are counted with following helpers:
file:~/fabulous/include/fabulous/kernel/flops.hpp
***** TODO finish implementation of flops count helpers
:LOGBOOK:
CLOCK: [2017-05-14 dim. 04:05]--[2017-05-14 dim. 04:07] => 0:02
:END:
[2017-05-14 dim. 04:05]
**** Integrate logger directly inside hessenbergs classes to make logging semantics more precise
concerned files:
- file:~/fabulous/include/fabulous/hessenberg/HessChamQR.hpp
- file:~/fabulous/include/fabulous/hessenberg/HessChamTLDR.hpp
- file:~/fabulous/include/fabulous/hessenberg/HessDR.hpp
- file:~/fabulous/include/fabulous/hessenberg/HessIBDR.hpp
- file:~/fabulous/include/fabulous/hessenberg/HessIB.hpp
- file:~/fabulous/include/fabulous/hessenberg/HessQRDR.hpp
- file:~/fabulous/include/fabulous/hessenberg/HessQR.hpp
- file:~/fabulous/include/fabulous/hessenberg/HessQRIBDR.hpp
- Least square time measure that was previously
in Arnoldi class is now in Hessenbergs class.
- Added factorization timer to help understand
algorithms with Incremental QR Factorization
#+BEGIN_SRC cpp
class Hessenberg {
// ...
private:
Logger<P> _logger;
// ...
void factorize_last_column()
{
_logger.notify_facto_begin();
// ...
_logger.notify_facto_end();
}
// ...
void solve_least_square(Block<S> Y)
{
_logger.notify_least_square_begin();
// ...
_logger.notify_least_square_end();
}
};
#+END_SRC
:LOGBOOK:
CLOCK: [2017-05-14 Sun 04:17]--[2017-05-14 Sun 04:26] => 0:09
:END:
[2017-05-14 Sun 04:17]
**** update developer notice about autocompletion
file:~/fabulous/INSTALL.org
:LOGBOOK:
CLOCK: [2017-05-14 Sun 04:51]--[2017-05-14 Sun 04:52] => 0:01
:END:
[2017-05-14 Sun 04:51]
......@@ -4,7 +4,9 @@
#+TITLE: FABuLOuS numericals results
#+NAME: fabulous_root
|/home/tmijieux/fabulous/|
#+BEGIN_SRC shell
echo ${HOME}/fabulous/
#+END_SRC
* RESULTS
:PROPERTIES:
......@@ -172,6 +174,7 @@ ggplot(df, aes(x=nb_mvp)) +
scale_y_log10() + geom_hline(aes(yintercept=1e-6, color="threshold")) +
ggtitle("young1c (nrhs=6, m=90 k=5)") + ylab(TeX("$\\eta_b$ (min, max)"))
#+END_SRC
*** lightInTissue (nrhs=6, m=90, k=5)
**** run test case
#+BEGIN_SRC shell
......@@ -256,7 +259,7 @@ ggplot(df, aes(x=global_iteration)) +
geom_line(aes(y=mvp_time, color="mvp")) +
geom_line(aes(y=ortho_time, color="ortho")) +
geom_line(aes(y=ib_time, color="ib")) +
# geom_line(aes(y=ib_time+ortho_time+mvp_time+least_square_time, color="SUM")) +
# geom_line(aes(y=ib_time+ortho_time+mvp_time+least_square_time, color="SUM")) +
ylab(TeX("Time (s)")) +
ggtitle("lightInTissue (nrhs=6, m=90 k=5)")
#+END_SRC
......
......@@ -21,9 +21,12 @@
*** DONE Add timer for orthogonalization, least square and matrix vector product
*** DONE Add global timer
*** TODO Improve timer semantics and logs
*** TODO Fix problem of least square time measure in QR+DR version; IBQRDR
*** DONE Fix problem of least square time measure in QR+DR version; IBQRDR
CLOSED: [2017-05-14 Sun 04:28]
(actual factorization if performed in notify_factorization_end() )
*** TODO Add flops/s counter
**** DONE orthogonalization flops counter
CLOSED: [2017-05-14 Sun 04:28]
*** TODO print flops
** DONE Improve RESULTS.org
Eventually, anyone must be able to gather all interesting results into RESULTS.org
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment