SCIRun: a scientific programming environment for computational steering
Supercomputing '95 Proceedings of the 1995 ACM/IEEE conference on Supercomputing
HPC++: experiments with the parallel standard template library
ICS '97 Proceedings of the 11th international conference on Supercomputing
The SCIRun computational steering software system
Modern software tools for scientific computing
Large field visualization with demand-driven calculation
VIS '99 Proceedings of the conference on Visualization '99: celebrating ten years
Design and implementation of generics for the .NET Common language runtime
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Computational Steering Software Systems and Strategies
IEEE Computational Science & Engineering
Will C++ Be Faster than Fortran?
ISCOPE '97 Proceedings of the Scientific Computing in Object-Oriented Parallel Environments
The scirun problem solving environment and computational steering software system
The scirun problem solving environment and computational steering software system
Biomedical computing and visualization software environments
Communications of the ACM - Bioinformatics
Glift: Generic, efficient, random-access GPU data structures
ACM Transactions on Graphics (TOG)
Teaching template classes with all the advantages
Journal of Computing Sciences in Colleges
Issues in the instantiation of template classes
ACM SIGCSE Bulletin
Hi-index | 0.00 |
Generic programming using the C++ template facility has been a successful method for creating high-performance, yet general algorithms for scientific computing and visualization. However, adding template code tends to require more template code in surrounding structures and algorithms to maintain generality. Compiling all possible expansions of these templates can lead to massive template bloat. Furthermore, compile-time binding of templates requires that all possible permutations be known at compile time, limiting the runtime extensibility of the generic code. We present a method for deferring the compilation of these templates until an exact type is needed. This dynamic compilation mechanism will produce the minimum amount of compiled code needed for a particular application, while maintaining the generality and performance that templates innately provide. Through a small amount of supporting code within each templated class, the proper templated code can be generated at runtime without modifying the compiler. We describe the implementation of this goal within the SCIRun dataflow system. SCIRun is freely available online for research purposes.