forked from SCOREC/core
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcore.tex
72 lines (55 loc) · 2.42 KB
/
core.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
\documentclass{article}
\usepackage{graphicx}
\usepackage[margin=1.0in]{geometry}
\begin{document}
\section{Benefits}
This version of the SCOREC Core uses an array-based mesh
library and a lightweight geometry library.
At runtime, the mesh structure size was reduced by 4X
(see the MDS document), and the geometry library does
not store any data, it only queries the underlying modeler.
By replacing the mesh and geometry libraries,
the size of the code was also considerably reduced.
The total number of lines of code was reduced by 4X.
The old mesh code was twice as large as all the new
codes combined.
\includegraphics[width=0.9\textwidth]{loc.png}
When measured as bytes of compiled machine code, the savings
is even more visible.
There is a 4.5X total savings, with the mesh library alone being 40X
smaller.
\includegraphics[width=0.9\textwidth]{libsize.png}
Compiled size has a direct impact on application performance.
Notice that the old libraries compiled total 72MB, which
is 7\% of the memory available to a Blue Gene/Q core.
Source code size impacts compile time, which was reduced from
2 minutes to 30 seconds.
\section{Version Control}
The SCOREC Core uses Git instead of Subversion.
Git allows users to create local commits and local branches
which are easily merged back to the central repository
and shared with other users.
This is a scalable way for each person to develop features
without interfering with one another.
Git also provides the full power to manage code locally even
when the central server is unreachable.
This is useful during travel or server maintenance.
\section{Organization}
All open-source code is kept in the same repository.
This makes it easy to build the core tools together
and manage access to them for new SCOREC members.
Code containing calls to proprietary interfaces will
be kept in separate repositories for proper access management.
\section{Modularity}
The large size of the old mesh library was due to monolithic
inclusion of extra features.
Interfaces to third-party systems like STK and Zoltan have
been moved outside the core mesh library.
These specialized components are written using only the APF mesh
interface.
This is a virtual interface just like the geometry libraries,
and has already been connected to PUMI, Simmetrix, and MDS.
This means the vast majority of the code is no longer locked in
to one system, and the mesh library can be changed without
rewriting all the code.
\end{document}