Applying Heuristic Search for Distributed Software Performance Enhancement
Copyright © 2009 SciRes JSEA
149
Table 3. Measured spee dups
20 40 100 130 400 500
TSP:Θ 0.8 0.9 1 1.2 1.35 1.4
CC: Θ 0.6 0.7 0.8 1 1.3 1.4
TSP:MCC 0.3 0.5 0.6 0.7 0.78 0.8
TSP:TM 0.6 0.8 0.2 0.8 1 0.8
which the Data Base server was running.
The measured speedups resulted from executing TSP
and CC on the test bed are presented in Table 3. The re-
sults are compared to other methods: (1) applying MCC
function and (2) and applying trivial method. MCC de-
notes Minimum Communication Cost described in sec-
tion 1. In the trivial method, denoted by TM, the invoca-
tions are assigned to a workstation with the lowest load
at runtime for execution.
5. Conclusions
In this paper the software reengineering research area has
been extended to include performance improvement of
existing distributed software. To achieve this first a per-
formance assessment function is extracted from the pro-
gram source code. Then this function is applied to find
optimal object deployment of the software using a con-
strained genetic clustering algorithm. The result is a la-
beled partitioning of the program call tree. The invoca-
tions inside a partition are assumed blocking while the
invocations among partitions are non-blocking. The la-
bels in the labeled partitioning graph indicate the work-
stations on which objects reside. We have implemented
this approach and applied that on two case studies. The
result of our measurements shows this approach can be
applied to improve the performance of legacy software.
This is an ongoing research in the field of Software
Performance Engineering. As the future work we intend
to extend the idea of architectural level performance as-
sessment in forward engineering to validate the software
models in the sense that whether they satisfy the per-
formance provisions or not.
REFERENCES
[1] B. Bellay and Gallh, “Reverse engineering to recover and
describe a systems architecture,” Development and Evo-
lution of Software Architectures for Product Families
Lecture Notes in Computer Science, Vol. 1429, 1998.
[2] D. R. Harris, H. B. Reubenstein and A.S.Yeh, “Reverse
engineering to the architectural level,” Proc. 17th Int.
Conf. Software Engineering, Seattle, Washington, US,
1995.
[3] S. Parsa and O. Bushehrian, “The design and implemen-
tation of a tool for automatic software modularization,” J.
Supercomput., Vol. 32, No. 1, pp. 71–94, 2005.
[4] B. S. Mitchell and M. Spiros, “Bunch: A clustering tool
for the recovery and maintenance of software system
structure,” Proc. Int. Conf. Software Maintenance, 1999.
(IEEE)
[5] L. Tahvildari, K. Kontoglannis and J. Mylopoulos, “Qual-
itydriven software re-engineering,” J. Syst. Softw., Vol.
66, pp. 225–239, 2003.
[6] Hyunsang Youn, Suhyeon Jang and Eunseok Lee, “De-
riving queuing network model for UML for software per-
formance prediction,” Fifth International Conference on
Software Engineering Research, Management and Appli-
cation, pp. 125–131, 2007. (IEEE)
[7] J. M. Fernandes, S. Tjell, J. B. Jorgensen and O. R.
Ribeiro, “Designing tool support for translating use cases
and UML 2.0 sequence diagrams into a colored Petri
Net,” Proc. 16th international Workshop on Scenarios and
State Machines, 2007. (IEEE)
[8] R. G. Pettit and H. Gomma, “Analyzing behavior of con-
current software designs for embedded systems,” Proc.
10th International Symposium on Object and Compo-
nent-Oriented Real-Time Distributed Computing, 2007.
(IEEE)
[9] Andolfif., F. Aquilani, S. Balsamo, and P. Inverardi, “De-
riving performance models of software architectures from
message sequence charts,” Proc. 2nd Int. Workshop on
Software and Performance (WOSP2000), Canada, 2000.
[10] Y. Gourhant, S. Louboutin, V. Cahill, A. Condon, G.
Starovic, and B. Tangney, “Dynamic clustering in an ob-
ject-oriented distributed system,” Proc. OLDA-II (Objects
in Large Distributed Applications), Ottawa, Canada, Oc-
tober 1992.
[11] D. Deb, M. Fuad, and M. J. Oudshoom, “Towards auto-
nomic distribution of existing object oriented programs,”
Int. Conf. Autonomic and Autonomous Systems (ICAS’
06), 2006. (IEEE)
[12] T. Fahringer and A. Jugravu, “JavaSymphony: New di-
rectives to control and synchronize locality, parallelism,
and load balancing for cluster and GRID-computing,”
Proc. Joint ACM Java Grande–ISCOPE 2002 Conf., Se-
attle, Washington, November 2002.
[13] S. Parsa and O. Bushehrian, “Genetic clustering with
constraints,” Journal of research and practice in informa-
tion technology, Vol. 39, No. 1, pp. 47–60, 2007.
[14] http://www.info.uni-karlsruhe.de/~compost, last visit: 12th
September 2009.
[15] M. Schoeberl, “A time predictable Java processor,” Proc.
Conf. Design, Automation and Test in Europe, Germany,
pp. 800–805, 2006.
[16] S. Parsa and O. Bushehrian, “Performance-driven object
oriented program re-modularization,” Journal of IET
Software, Vol. 2, No. 4, pp. 362–378, 2008.
[17] B. S. Mitchell, “A heuristic search approach to solving
the software clustering problem,” Ph.D Thesis, Drexel
University, March 2002.