was possible to comply with a given economic
objective as well as achieving a significant speedup
on two varying target systems without much
additional development effort – hence, the
methodology did help to address and overcome the
economic obstacles associated with the scenario.
In Section 6 we have carved out similarities as
well as fundamental differences between the
analyzing approach used by our methodology and
the classical approach used by many existing
methodologies. The comparison showed how our
approach allows project planning and cost control
and how in some cases this even can lead to better
quality (higher speedup/less development effort) for
the manual parallelization.
As both approaches do have pros and cons the
question arises, under which circumstances each of
the approaches is suitable the most? Due to the
higher complexity we think the approach of our
methodology might be better suited for rather large
porting projects, which can benefit the most from
better planning capabilities and cost control. In
contrast to that the more “ad hoc” doing of the
classical approach might be the right choice for
rather small porting projects. However, despite this
argumentation this is still an open question that we
want to pursue. Furthermore, we intend to apply our
methodology to upcoming porting projects. Based
on these experiences we want to develop the
methodology further to achieve an optimal use in
practice.
REFERENCES
Asanovic, K. et al., 2006. The landscape of parallel
computing research: a view from Berkeley. University
of California at Berkeley, Technical report.
Asanovic, K. et al., 2009. A view of the parallel
computing landscape. In Commun. ACM, Vol. 52, No.
10, pp. 56-67.
Borkar, S., Chien, A. A., 2011. The future of
microprocessors. In Commun. ACM, Vol. 54, No. 5,
pp. 67-77.
Christmann, C., Falkner, J., Weisbecker, A., 2012.
Optimizing the efficiency of the manual
parallelization. In Int. Conf. on Software & Systems
Engineering and their Applications (ICSSEA 2012).
Christmann, C., Hebisch, E., Strauß, O., 2012a.
Einsatzszenarien für die multicore-technologie,
Fraunhofer Verlag. Stuttgart.
Christmann, C., Hebisch, E., Strauß, O., 2012b.
Vorgehensweise für die multicore-
softwareentwicklung, Fraunhofer Verlag. Stuttgart.
Creeger, M., 2005. Multicore cpus for the masses. In ACM
Queue, Vol. 3, No. 7, pp. 64 ff.
Diggins, C., 2009. Three reasons for moving to multicore.
Dr. Dobb’s Journal. www.drdobbs.com/parallel/21620
0386 [2014-02-25].
Donald, J., Martonosi, M., 2006. An efficient, practical
parallelization methodology for multicore architecture
simulation. In IEEE Computer Achitecture Letters,
Vol. 5, No. 2, pp. 14 ff.
Foster, I., 1995. Designing and building parallel
programs: concepts and tools for parallel software
engineering, Addison-Wesley. Boston.
Frühauf, K., Ludewig, J., Sandmayr, H., 2004. Software-
prüfung – eine anleitung zum test und zur inspektion,
vdf Hochschulverlag. Zurich, 5
th
edition.
Goldberg, D. E., 1989. Genetic algorithms in search,
optimization, and machine learning, Addison-Wesley.
Reading.
Grötker, T. et al., 2008. The developer’s guide to
debugging, Springer. Berlin.
Hochstein, L. et al., 2005. Parallel Programmer
Productivity: A Case Study of Novice Parallel
Programmers. In Proc. of the 2005 ACM/IEEE
conference on Supercomputing. IEEE Computer
Society. Washington, pp. 35 ff.
Intel, 2003. Threading methodology: principles and
practices. Intel Corp., White paper.
Jainschigg, J., 2012. Parallel programming: goals, skills,
platforms, markets, languages. Slashdot Media,
Report.
Kampmann, R., Walter, J., 2009. Mikroökonomie: markt,
wirtschaftsordnung, wettbewerb, Oldenbourg. Munich.
Karcher, T., Schaefer, C., Pankratius, V., 2009. Auto-
tuning support for manycore applications: perspectives
for operating systems and compilers. In ACM SIGOPS
Operating Systems Review, Vol. 43, No. 2, pp. 96-97.
Kellerer, H., Pferschy, U., Pisinger, D., 2010. Knapsack
problems, Springer. Berlin.
Ludewig, J., Lichter, H., 2007. Software-engineering:
grundlagen, menschen, prozesse, techniken, Dpunkt.
Heidelberg, 1
st
edition.
Mattson, T. G., Sanders, B. A., Massingill, B. L., 2004.
Patterns for parallel programming, Addison-Wesley.
Boston.
Park, I., 2000. Parallel programming methodology and
environment for the shared memory programming
model. Purdue University, PhD thesis.
Pankratius, V., Tichy, W. F., 2008. Die Multicore-
Revolution und ihre Bedeutung für die
Softwareentwicklung. In Objektspektrum, No. 4, pp.
30-32.
Ramanujam, J., Sadayappan, P., 1989. A methodology for
parallelizing programs for multicomputers and
complex memory multiprocessors. In Proc. 1989
ACM/IEEE Conf. on Supercomputing. ACM. New
York, pp. 637-646.
Rauber, T., Rünger, G., 2012. Parallele Programmierung,
Springer. Berlin, 3
rd
edition.
Singler J., Konsik, B., 2008. The gnu libstdc++ parallel
mode: software engineering considerations. In Proc.
1
st
Int. Workshop on Multicore Software Engineering
(IWMSE ’08). ACM. New York, pp. 15-22.
ICSOFT-EA2014-9thInternationalConferenceonSoftwareEngineeringandApplications
558