Skip to content
GitLab
Explore
Sign in
Giacomo Mulas
NP_TMcode
Compare revisions
b626e5d827af764078239e14d2037d52319e1eef to 08844351307638586aeff2b4a11443e2dfe93ac9
Commits on Source (3)
Remove reference to logger from ClusterIterationData and library functions
· 000aab11
Giovanni La Mura
authored
May 01, 2024
000aab11
Remove linking to openblas64
· 27b620dd
Giovanni La Mura
authored
May 01, 2024
27b620dd
Add timing messages for matrix calculation and inversion, together with angle grid
· 08844351
Giovanni La Mura
authored
May 01, 2024
08844351
Hide whitespace changes
Inline
Side-by-side
src/cluster/cluster.cpp
View file @
08844351
...
...
@@ -178,6 +178,10 @@ void cluster(const string& config_file, const string& data_file, const string& o
chrono
::
time_point
<
chrono
::
high_resolution_clock
>
start_iter_1
=
chrono
::
high_resolution_clock
::
now
();
int
jer
=
cluster_jxi488_cycle
(
jxi488
,
sconf
,
gconf
,
p_scattering_angles
,
cid
,
output
,
output_path
,
tppoan
,
logger
);
chrono
::
time_point
<
chrono
::
high_resolution_clock
>
end_iter_1
=
chrono
::
high_resolution_clock
::
now
();
elapsed
=
start_iter_1
-
t_start
;
message
=
"INFO: Calculation setup took "
+
to_string
(
elapsed
.
count
())
+
"s.
\n
"
;
logger
->
log
(
message
);
time_logger
->
log
(
message
);
elapsed
=
end_iter_1
-
start_iter_1
;
message
=
"INFO: First iteration took "
+
to_string
(
elapsed
.
count
())
+
"s.
\n
"
;
logger
->
log
(
message
);
...
...
@@ -231,7 +235,7 @@ void cluster(const string& config_file, const string& data_file, const string& o
}
#pragma omp barrier
{
message
=
"Closing thread-local output files of thread "
+
to_string
(
myompthread
)
+
" and syncing threads.
\n
"
;
message
=
"
INFO:
Closing thread-local output files of thread "
+
to_string
(
myompthread
)
+
" and syncing threads.
\n
"
;
logger
->
log
(
message
);
}
}
// closes pragma omp parallel
...
...
@@ -243,7 +247,7 @@ void cluster(const string& config_file, const string& data_file, const string& o
// Giovanni, please add here in this loop code to reopen the temporary files, reread them and append them respectively to the global output and tppoan, before closing them
string
partial_file_name
=
output_path
+
"/c_OCLU_"
+
to_string
(
ri
);
message
=
"Copying ASCII output of thread "
+
to_string
(
ri
)
+
" of "
+
to_string
(
ompnumthreads
-
1
)
+
"... "
;
logger
->
log
(
message
);
logger
->
log
(
message
,
LOG_DEBG
);
FILE
*
partial_output
=
fopen
(
partial_file_name
.
c_str
(),
"r"
);
char
c
=
fgetc
(
partial_output
);
while
(
c
!=
EOF
)
{
...
...
@@ -252,10 +256,10 @@ void cluster(const string& config_file, const string& data_file, const string& o
}
fclose
(
partial_output
);
remove
(
partial_file_name
.
c_str
());
logger
->
log
(
"done.
\n
"
);
logger
->
log
(
"done.
\n
"
,
LOG_DEBG
);
partial_file_name
=
output_path
+
"/c_TPPOAN_"
+
to_string
(
ri
);
message
=
"Copying binary output of thread "
+
to_string
(
ri
)
+
" of "
+
to_string
(
ompnumthreads
-
1
)
+
"... "
;
logger
->
log
(
message
);
logger
->
log
(
message
,
LOG_DEBG
);
fstream
partial_tppoan
;
partial_tppoan
.
open
(
partial_file_name
.
c_str
(),
ios
::
in
|
ios
::
binary
);
partial_tppoan
.
seekg
(
0
,
ios
::
end
);
...
...
@@ -267,7 +271,7 @@ void cluster(const string& config_file, const string& data_file, const string& o
partial_tppoan
.
close
();
delete
[]
binary_buffer
;
remove
(
partial_file_name
.
c_str
());
logger
->
log
(
"done.
\n
"
);
logger
->
log
(
"done.
\n
"
,
LOG_DEBG
);
}
}
#endif
...
...
@@ -301,7 +305,10 @@ void cluster(const string& config_file, const string& data_file, const string& o
int
cluster_jxi488_cycle
(
int
jxi488
,
ScattererConfiguration
*
sconf
,
GeometryConfiguration
*
gconf
,
ScatteringAngles
*
sa
,
ClusterIterationData
*
cid
,
FILE
*
output
,
const
string
&
output_path
,
fstream
&
tppoan
,
Logger
*
logger
)
{
int
nxi
=
sconf
->
number_of_scales
;
logger
->
log
(
"INFO: running scale iteration "
+
to_string
(
jxi488
)
+
" of "
+
to_string
(
nxi
)
+
".
\n
"
);
string
message
=
"INFO: running scale iteration "
+
to_string
(
jxi488
)
+
" of "
+
to_string
(
nxi
)
+
".
\n
"
;
logger
->
log
(
message
);
chrono
::
duration
<
double
>
elapsed
;
chrono
::
time_point
<
chrono
::
high_resolution_clock
>
interval_start
,
interval_end
;
int
jer
=
0
;
int
lcalc
=
0
;
int
jaw
=
1
;
...
...
@@ -377,12 +384,23 @@ int cluster_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConf
//break;
}
}
// i132 loop
interval_start
=
chrono
::
high_resolution_clock
::
now
();
cms
(
cid
->
am
,
cid
->
c1
,
cid
->
c1ao
,
cid
->
c4
,
cid
->
c6
);
interval_end
=
chrono
::
high_resolution_clock
::
now
();
elapsed
=
interval_end
-
interval_start
;
message
=
"INFO: matrix calculation for scale "
+
to_string
(
jxi488
)
+
" took "
+
to_string
(
elapsed
.
count
())
+
"s.
\n
"
;
logger
->
log
(
message
);
interval_start
=
chrono
::
high_resolution_clock
::
now
();
invert_matrix
(
cid
->
am
,
ndit
,
jer
,
mxndm
);
interval_end
=
chrono
::
high_resolution_clock
::
now
();
elapsed
=
interval_end
-
interval_start
;
message
=
"INFO: matrix inversion for scale "
+
to_string
(
jxi488
)
+
" took "
+
to_string
(
elapsed
.
count
())
+
"s.
\n
"
;
logger
->
log
(
message
);
if
(
jer
!=
0
)
{
return
jer
;
// break; // jxi488 loop: goes to memory clean
}
interval_start
=
chrono
::
high_resolution_clock
::
now
();
ztm
(
cid
->
am
,
cid
->
c1
,
cid
->
c1ao
,
cid
->
c4
,
cid
->
c6
,
cid
->
c9
);
if
(
idfc
>=
0
)
{
if
(
jxi488
==
jwtm
)
{
...
...
@@ -450,6 +468,11 @@ int cluster_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConf
tppoan
.
write
(
reinterpret_cast
<
char
*>
(
&
(
cid
->
vk
)),
sizeof
(
double
));
pcrsm0
(
cid
->
vk
,
exri
,
inpol
,
cid
->
c1
,
cid
->
c1ao
,
cid
->
c4
);
apcra
(
cid
->
zpv
,
cid
->
c4
->
le
,
cid
->
c1ao
->
am0m
,
inpol
,
sqk
,
cid
->
gapm
,
cid
->
gappm
);
interval_end
=
chrono
::
high_resolution_clock
::
now
();
elapsed
=
interval_end
-
interval_start
;
message
=
"INFO: average calculation for scale "
+
to_string
(
jxi488
)
+
" took "
+
to_string
(
elapsed
.
count
())
+
"s.
\n
"
;
logger
->
log
(
message
);
interval_start
=
chrono
::
high_resolution_clock
::
now
();
double
th
=
sa
->
th
;
for
(
int
jth486
=
1
;
jth486
<=
sa
->
nth
;
jth486
++
)
{
// OpenMP portable?
double
ph
=
sa
->
ph
;
...
...
@@ -934,6 +957,10 @@ int cluster_jxi488_cycle(int jxi488, ScattererConfiguration *sconf, GeometryConf
}
// jph484 loop
th
+=
sa
->
thstp
;
}
// jth486 loop
interval_end
=
chrono
::
high_resolution_clock
::
now
();
elapsed
=
interval_end
-
interval_start
;
message
=
"INFO: angle loop for scale "
+
to_string
(
jxi488
)
+
" took "
+
to_string
(
elapsed
.
count
())
+
"s.
\n
"
;
logger
->
log
(
message
);
logger
->
log
(
"INFO: finished scale iteration "
+
to_string
(
jxi488
)
+
" of "
+
to_string
(
nxi
)
+
".
\n
"
);
...
...
src/include/Commons.h
View file @
08844351
...
...
@@ -455,8 +455,6 @@ public:
//! \brief Wave number.
double
wn
;
double
xip
;
//! \brief Pointer to a logger instance.
Logger
*
logger
;
ClusterIterationData
(
GeometryConfiguration
*
gconf
,
ScattererConfiguration
*
sconf
);
...
...
src/libnptm/Commons.cpp
View file @
08844351
...
...
@@ -8,10 +8,6 @@
#include
"../include/types.h"
#endif
#ifndef INCLUDE_LOGGING_H_
#include
"../include/logging.h"
#endif
#ifndef INCLUDE_CONFIGURATION_H_
#include
"../include/Configuration.h"
#endif
...
...
src/libnptm/clu_subs.cpp
View file @
08844351
...
...
@@ -9,10 +9,6 @@
#include
"../include/types.h"
#endif
#ifndef INCLUDE_LOGGING_H_
#include
"../include/logging.h"
#endif
#ifndef INCLUDE_CONFIGURATION_H_
#include
"../include/Configuration.h"
#endif
...
...
src/libnptm/sph_subs.cpp
View file @
08844351
...
...
@@ -8,10 +8,6 @@
#include
"../include/types.h"
#endif
#ifndef INCLUDE_LOGGING_H_
#include
"../include/logging.h"
#endif
#ifndef INCLUDE_CONFIGURATION_H_
#include
"../include/Configuration.h"
#endif
...
...
src/libnptm/tra_subs.cpp
View file @
08844351
...
...
@@ -11,10 +11,6 @@
#include
"../include/types.h"
#endif
#ifndef INCLUDE_LOGGING_H_
#include
"../include/logging.h"
#endif
#ifndef INCLUDE_CONFIGURATION_H_
#include
"../include/Configuration.h"
#endif
...
...
src/make.inc
View file @
08844351
...
...
@@ -97,11 +97,6 @@ endif
override
CXXLDFLAGS
=-
L
/
usr
/
lib64
-
L
$
(
HDF5_LIB
)
-
lhdf5
$
(
STATICFLAG
)
ifdef
USE_LAPACK
override
CXXLDFLAGS
+=
$
(
LAPACK_LDFLAGS
)
ifdef
USE_OPENMP
ifndef
USE_MKL
override
CXXLDFLAGS
+=
-
lopenblas64
endif
endif
endif
override
CXXLDFLAGS
+=
$
(
LDFLAGS
)
endif
...
...