skip to main content
10.1145/1529282.1529499acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
research-article

Modular implementation of adaptive decisions in stochastic simulations

Published: 08 March 2009 Publication History

Abstract

We present a modular approach to implement adaptive decisions with existing scientific codes. Using a sophisticated system software tool based on the function call interception technique, an external code module is transparently combined with the given program without altering the original code structure, resulting in a newly composed application with extended behavior. This is useful for generalizing codes into using different parameter values or to switch algorithms or implementations at runtime. Applying the proposed method on a biochemical stochastic simulation software package to implement a set of exemplary use cases, which includes changing program parameters, substituting random number generators, and dynamically changing the stochastic simulation method, we demonstrate how effectively new code modules can be plugged in to construct an application with enhanced capabilities.

References

[1]
ACC. http://www.aspectc.net.
[2]
Netlib. http://www.netlib.org.
[3]
RANLIB C Implementation. http://www.netlib.org/random.
[4]
StochKit. http://www.engineering.ucsb.edu/~cse/StochKit.
[5]
B. Buck and J. K. Hollingsworth. An API for Runtime Code Patching. Int. J. High Perform. Comput. Appl., 14(4): 317--329, 2000.
[6]
Y. Cao, D. T. Gillespie, and L. R. Petzold. Accelerated Stochastic Simulation of the Stiff Enzyme-Substrate Reaction. Journal of Chemical Physics, 123(14): 144917.1--144917.12, October 2005.
[7]
Y. Cao, D. T. Gillespie, and L. R. Petzold. The Slow-Scale Stochastic Simulation Algorithm. Journal of Chemical Physics, 122(1): 014116, January 2005.
[8]
Y. Cao and L. R. Petzold. Trapezoidal Tau-Leaping Formula for the Stochastic Simulation of Biochemical Systems. Proceedings of Foundations of Systems Biology in Engineering (FOSBE), pages 149--152, 2005.
[9]
V. K. Decyk, C. D. Norton, and H. J. Gardner. Why Fortran? Computing in Science and Engineering, 9(4): 68--71, 2007.
[10]
P. F. Dubois. Ten Good Practices in Scientific Programming. Computing in Science and Engg., 1(1): 7--11, 1999.
[11]
D. T. Gillespie. A General Method for Numerically Simulating the Stochastic Time Evolution of Coupled Chemical Reactions. Journal of Computational Physics, 22(4): 403--434, December 1976.
[12]
D. T. Gillespie. Exact Stochastic Simulation of Coupled Chemical Reactions. The Journal of Physical Chemistry, 81(25): 2340--2361, 1977.
[13]
D. T. Gillespie. Approximate Accelerated Stochastic Simulation of Chemically Reacting Systems. The Journal of Chemical Physics, 115(4): 1716--1733, 2001.
[14]
M. A. Heffner. A Runtime Framework for Adaptive Compositional Modeling. Master's thesis, Blacksburg, VA, USA, 2004.
[15]
E. Hilsdale and J. Hugunin. Advice weaving in AspectJ. In AOSD '04: Proceedings of the 3rd international conference on Aspect-oriented software development, pages 26--35, New York, NY, USA, 2004. ACM Press.
[16]
E. N. Houstis, A. C. Catlin, J. R. Rice, V. S. Verykios, N. Ramakrishnan, and C. E. Houstis. PYTHIA-II: A Knowledge/Database System for Managing Performance Data and Recommending Scientific Software. ACM Trans. Math. Softw., 26(2): 227--253, 2000.
[17]
G. Kiczales, J. Lamping, A. Menhdhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-Oriented Programming. In M. Akşit and S. Matsuoka, editors, Proceedings European Conference on Object-Oriented Programming, volume 1241, pages 220--242. Springer-Verlag, Berlin, Heidelberg, and New York, 1997.
[18]
P. L'Ecuyer and S. Côté. Implementing a Random Number Package with Splitting Facilities. ACM Trans. Math. Softw., 17(1): 98--111, 1991.
[19]
M. M. Lehman. The Programming Process. Technical Report RC2722, IBM Research Report, December 1969.
[20]
M. M. Lehman and L. A. Belady, editors. Program Evolution: Processes of Software Change. Academic Press Professional, Inc., San Diego, CA, USA, 1985.
[21]
C.-K. Luk, R. Cohn, R. Muth, H. Patil, A. Klauser, G. Lowney, S. Wallace, V. J. Reddi, and K. Hazelwood. Pin: Building Customized Program Analysis Tools with Dynamic Instrumentation. In PLDI '05: Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation, pages 190--200, New York, NY, USA, 2005. ACM Press.
[22]
W. R. Mahoney and W. L. Sousan. Using Common Off-the-Shelf Tools to Implement Dynamic Aspects. SIGPLAN Not., 42(2): 34--41, 2007.
[23]
M. Mascagni and A. Srinivasan. Algorithm 806: SPRNG: A Scalable Library for Pseudorandom Number Generation. ACM Trans. Math. Softw., 26(3): 436--461, 2000.
[24]
M. Matsumoto and T. Nishimura. Mersenne Twister: A 623-Dimensionally Equidistributed Uniform Pseudo-random Number Generator. ACM Trans. Model. Comput. Simul., 8(1): 3--30, 1998.
[25]
N. Nethercote and J. Seward. Valgrind: A Program Supervision Framework. Electronic Notes in Theoretical Computer Science, 89(2), 2003.
[26]
N. Ramakrishnan, E. N. Houstis, and J. R. Rice. Recommender Systems for Problem Solving Environments. In H. Kautz, editor, Working Notes of the AAAI-98 Workshop on Recommender Systems, pages 91--95. AAAI/MIT Press, 1998.
[27]
M. Rathinam, L. R. Petzold, Y. Cao, and D. T. Gillespie. Stiffness in Stochastic Chemically Reacting Systems: The Implicit Tau-Leaping Method. The Journal of Chemical Physics, 119(24): 12784--12794, 2003.
[28]
M. Saito and M. Matsumoto. SIMD-oriented Fast Mersenne Twister: a 128-bit Pseudorandom Number Generator. In Monte Carlo and Quasi-Monte Carlo Methods 2006, pages 607--622. Springer Berlin Heidelberg, 2006.
[29]
O. Spinczyk, A. Gal, and W. Schröder-Preikschat. AspectC++: An Aspect-Oriented Extension to the C++ Programming Language. In CRPIT '02: Proceedings of the 40th International Conference on Tools Pacific, pages 53--60, Darlinghurst, Australia, Australia, 2002. Australian Computer Society, Inc.
[30]
A. Srivastava and A. Eustace. ATOM: A System for Building Customized Program Analysis Tools. In PLDI '94: Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation, pages 196--205, New York, NY, USA, 1994. ACM Press.
[31]
C. Zhang and H.-A. Jacobsen. TinyC2: Towards Building a Dynamic Weaving Aspect Language for C. In Proceedings of the 2nd AOSD Workshop on Foundations of Aspect-Oriented Languages, Boston, MA, USA, March 2003.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SAC '09: Proceedings of the 2009 ACM symposium on Applied Computing
March 2009
2347 pages
ISBN:9781605581668
DOI:10.1145/1529282
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 08 March 2009

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. function call interception
  2. modular composition
  3. program modification
  4. stochastic simulation

Qualifiers

  • Research-article

Conference

SAC09
Sponsor:
SAC09: The 2009 ACM Symposium on Applied Computing
March 8, 2009 - March 12, 2008
Hawaii, Honolulu

Acceptance Rates

Overall Acceptance Rate 1,650 of 6,669 submissions, 25%

Upcoming Conference

SAC '25
The 40th ACM/SIGAPP Symposium on Applied Computing
March 31 - April 4, 2025
Catania , Italy

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 03 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Evolving scientific code adaptations with modularization frameworksAutomated Software Engineering10.1007/s10515-023-00393-x30:2Online publication date: 28-Jul-2023
  • (2018)Implementing Adaptive Decisions in Stochastic Simulations via AOPIEICE Transactions on Information and Systems10.1587/transinf.2018EDL8044E101.D:7(1950-1953)Online publication date: 1-Jul-2018
  • (2012)Adaptive Code CollageComputing in Science and Engineering10.1109/MCSE.2011.1714:1(52-63)Online publication date: 1-Jan-2012
  • (2011)Dynamic software updates for parallel high-performance applicationsConcurrency and Computation: Practice & Experience10.1002/cpe.166323:4(415-434)Online publication date: 1-Mar-2011
  • (2009)Modular, Fine-Grained Adaptation of Parallel ProgramsProceedings of the 9th International Conference on Computational Science: Part I10.1007/978-3-642-01970-8_27(269-279)Online publication date: 20-May-2009

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media