Gentoo Archives: gentoo-soc

From: Michael Gilroy <Michael.Gilroy@××××××××.edu>
To: gentoo-soc@l.g.o
Subject: [gentoo-soc] Weekly Report: MPI Overlay, Week 8
Date: Sat, 22 Jul 2017 09:50:38
Message-Id: CAHsHdL9=y0auM9Ek1fmy79EQaO5y7=3iRmL-wmeyVuKNR3fAdg@mail.gmail.com
1 Hi all,
2
3 *Summary:*
4 Last week's plans:
5 1) Test various make.conf configurations to test against hpl builds.
6 2) Set proper LDFLAGS to detect libmpi.so in its new location.
7 3) Verify implementations listed in make.conf, expand upon
8 dependency-appending function.
9
10 I believe a lot of good progress was made. The hpl builds are going much
11 more smoothly, and mpi-select now offers much more functionality during the
12 compilation phases. There are some more minor hurdles that I need to clear
13 to polish up certain functions, like the dependencies as well as locating
14 mpicc effectively. The LDFLAGS should be working now but require further
15 testing. Make.conf configurations are also coming along but also require
16 more testing.
17
18 Next week's plans:
19 1) Fix bugs from build.log output- general eclass housekeeping.
20 2) Expand upon implementation-specifc src_* phases while using multilib
21 functions to iterate through implementations.
22 3) Discuss further design & next steps (installing mpi-dependent libs to
23 certain location, etc)
24
25 *Day-by-day breakdown:*
26
27 *Weekend/Monday Plans:*
28
29 Go through notes of meeting. Properly implement and test things like LFLAGS
30 or LD_LIBRARY_PATH and has_version to validate $MPI_TARGETS
31
32 Work in progress. Now that I can properly test against hpl, I will work on
33 getting libmpi.so properly sourced in LFLAGS.
34
35
36 Get mpi-select to a "stable" build for further branching.
37
38 Completed. hpl now builds successfully within the overlay.
39
40
41 *Tuesday's Plans:*
42
43 Eliminate dependence on mpi.eclass by adding mpi-select equivalent
44 functionality.
45
46 Work in progress. Functions from mpi.eclass have been added, but they need
47 to be further tested and expanded upon specifically for mpi-select.
48
49
50 Append to LFLAGS based on new /usr/$(get_lib)/mpi implementation location.
51 Requires further testing, since upon compiling hpl is currently looking for
52 the "normal" libmpi.so.
53
54 Debug semantics of mpi-select functions using einfo statements.
55 Incomplete. I did not get to this due to homework I have due Wednesday, I
56 will continue to work on this.
57
58
59 *Wednesday's Plans:*
60
61 Debug logical errors in mpi-select_src_*
62
63 Somewhat complete. While there have been errors patched, there are still a
64 few "command not found"s in the build log, but everything is still stable
65 and compiles.
66
67
68 Test LFLAGS against different installed implementations.
69
70 For hpl in particular, it sets a local variable called "mpicc_path" and I
71 have been struggling to set this dynamically. I also think using
72 LD_LIBRARY_PATH could potentially be easier
73 (correct me if I am wrong), as that is what is supported in the current
74 mpi.eclass .
75
76 Currently in the overlay this is statically set to
77 "/usr/lib64/mpi/mpich-3.2/install/usr/bin/mpicc". Even when I do the _bare
78 minimum_ and echo that exact string from a function into the "mpicc_path"
79 variable, I get the "make: o: command not found" that I would get if the
80 path were incorrect. I have some functions set up that I believe would
81 handle this dynamically but I am failing to echo the output correctly... Is
82 there something simple I'm missing here??
83
84
85 Currently the functions I've set up request the _latest version_ of mpich
86 currently installed, which I assume to be correct for now. I could always
87 add a variable later to get a user-specified version of mpich for the mpicc
88 building process.
89
90
91 Further update functions used in hpl ebuild, refactor as needed.
92
93 Work in progress. I now believe I have a very good idea of how functions
94 should be set up in the overlay, and will continue to work to try to make
95 the function calls as clean and simple as possible from the users'
96 perspective.
97
98 *Thursday's Plans:*
99
100 Fix issues with returning correct values from functions (might need some
101 insight on this, as I've tried a lot at this point).
102 Incomplete. I will email as needed tomorrow.
103
104 Replace mpi_pkg_deplist with mpi-select equivalent function.
105 Completed. mpi_dependencies now grabs software by version to install.
106
107 Replace all other hpl-2.1 mpi.eclass dependent functions.
108 Some things like mpi_root still need some work.
109
110
111 *Friday's Plans:*
112
113 Get rid of "command not found" errors at runtime.
114
115 Nearly completed. Most are gone, but I do need to hunt down some extra
116 minor build errors.
117
118
119 Add function to verify each MPI_TARGET individually.
120
121 Having issues with has_version from flag-o-matic. Getting error: "$FUNCNAME
122 calls are not allowed at global scope" even though this is being executed
123 from within an eclass function (mpi_dependencies). Seems strange... I'd
124 love to see if any of you have any insight.
125
126
127 Replace existing mpi.eclass functions.
128
129 This was very much connected to the "command not found" buildtime errors.
130 This is nearly completed.
131
132
133
134 Note: I will be working this weekend, but will be adding that progress to
135 next week's progress report.
136
137 All the best,
138 Michael