Vectorization technology to improve interpreter performance
2013, ACM Transactions on Architecture and Code Optimization
https://doi.org/10.1145/2400682.2400685Abstract
In the present computing landscape, interpreters are in use in a wide range of systems. Recent trends in consumer electronics have created a new category of portable, lightweight software applications. Typically, these applications have fast development cycles and short life spans. They run on a wide range of systems and are deployed in a target independent bytecode format over Internet and cellular networks. Their authors are untrusted third-party vendors, and they are executed in secure managed runtimes or virtual machines. Furthermore, due to security policies or development time constraints, these virtual machines often lack just-in-time compilers and rely on interpreted execution. At the other end of the spectrum, interpreters are also a reality in the field of high-performance computations because of the flexibility they provide.
References (28)
- AMDAHL, G. M. 1967. Validity of the single processor approach to achieving large scale computing capabilities. In Proceedings of the Spring Joint Computer Conference (AFIPS'67). ACM, New York, 483-485.
- BAILEY, D., BARSZCZ, E., BARTON, J., BROWNING, D., CARTER, R., DAGUM, L., FATOOHI, R., FINEBERG, S., FREDERICKSON, P., LASINKI, T., SCHREIBER, R., SIMON, H., VENKATAKRISHNAN, V., AND WEERATUNGA, S. 1994. The NAS parallel benchmarks. Tech. rep. RNR-94-007, NASA.
- BELL, J. R. 1973. Threaded code. Comm. ACM 16, 370-372.
- BROWNE, S., DONGARRA, J., GARNER, N., LONDON, K., AND MUCCI, P. 2000. A scalable cross-platform infrastruc- ture for application performance tuning using hardware counters. In Proceedings of the Conference on Supercomputing.
- CAMPANONI, S., AGOSTA, G., CRESPI REGHIZZI, S., AND DI BIAGIO, A. 2010. A highly flexible, parallel virtual machine: Design and experience of ILDJIT. Softw. Pract. Experi. 7, 2, 177-207.
- CLINGMAN, D., KENDALL, S., AND MESDAGHI, S. 2004. Practical Java Game Programming. Jenifer Niles.
- COSTA, R., ORNSTEIN, A. C., AND ROHOU, E. 2007. CLI back-end in GCC. In Proceedings of the GCC Developers' Summit. 111-116.
- DE ICAZA, M. 2008. Mono's SIMD support: Making mono safe for gaming. http://tirania.org/blog/archive/ 2008/Nov-03.html.
- ECMA International 2006. Common Language Infrastructure (CLI) Partitions I to IV, 4th ed. ECMA Inter- national.
- ERTL, M. AND GREGG, D. 2001. The behavior of efficient virtual machine interpreters on modern architectures. In Euro-Par Parallel Processing, Lecture Notes in Computer Science, vol. 2150. 403-413.
- ERTL, M. A. AND GREGG, D. 2003. Optimizing indirect branch prediction accuracy in virtual machine inter- preters. In Proceedings of Conference on Programming Language Design and Implementation (PLDI). ACM, New York, 278-288.
- ERTL, M. A. AND GREGG, D. 2004. Combining stack caching with dynamic superinstructions. In Proceedings of the Workshop on Interpreters, Virtual Machines and Emulators (IVME'04). ACM, New York, USA, 7-14.
- FRUMKIN, M. A. AND SHABANOV, L. 2003. Arithmetic data cube as a data intensive benchmark. Tech. rep. NAS-03-005, NASA. February.
- GUTHAUS, M. R., RINGENBERG, J. S., ERNST, D., AUSTIN, T. M., MUDGE, T., AND BROWN, R. B. 2001. MiBench: A free, commercially representative embedded benchmark suite. In IEEE 4th Annual Workshop on Workload Characterization. MONO. The mono project. http://www.mono-project.com. MOONLIGHT 2009. Moonlight. http://www.go-mono.com/moonlight.
- NAUMANN, A. AND CANAL, P. 2008. The role of interpreters in high performance computing. In Proceedings of the XII Advanced Computing and Analysis Techniques in Physics Research Conference. 65.
- NIE, J., CHENG, B., LI, S., WANG, L., AND LI, X.-F. 2010. Vectorization for java. In Network and Parallel Computing. 3-17.
- NUZMAN, D., DYSHEL, S., ROHOU, E., ROSEN, I., WILLIAMS, K., YUSTE, D., COHEN, A., AND ZAKS, A. 2011. Vapor SIMD: Auto-Vectorize once, run everywhere. In Proceedings of the International Symposium on Code Generation and Optimization (CGO).
- NUZMAN, D. AND HENDERSON, R. 2006. Multi-Platform auto-vectorization. In Proceedings of the International Symposium on Code Generation and Optimization (CGO).
- NUZMAN, D. AND ZAKS, A. 2006. Autovectorization in GCC-Two years later. In GCC Developer's Summit. ORACLE. 2010. Frequently asked questions about the java hotspot vm. http://www.oracle.com/technetwork/ java/hotspotfaq-138619.html.
- PALECZNY, M., VICK, C., AND CLICK, C. 2001. The java hotspot TM server compiler. In Proceedings of the Sym- posium on Java TM Virtual Machine Research and Technology Symposium (JVM'01). Vol. 1. USENIX Association, Berkeley.
- PAPA, J. AND KINNEY, A. 2010. Silverlight 4 Overview -Technical Features. Microsoft.
- POUCHET, L.-N., BONDHUGULA, U., BASTOUL, C., COHEN, A., RAMANUJAM, J., AND SADAYAPPAN, P. 2010. Combined iterative and model-driven optimization in an automatic parallelization framework. In Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis.
- POZO, R. AND MILLER, B. 2000. Scimark. version 2.1c. http://math.nist.gov/scimark2/.
- ROHOU, E., DYSHEL, S., NUZMAN, D., ROSEN, I., WILLIAMS, K., COHEN, A., AND ZAKS, A. 2011. Speculatively vectorized bytecode. In Proceedings of the International Conference on High Performance and Embedded Architectures and Compilers (HiPEAC).
- SEZNEC, A. AND MICHAUD, P. 2006. A case for (partially) TAgged GEometric history length branch prediction. J. Instruc. Level Parall. 8.
- STALLMAN, R. M. AND THE GCC DEVELOPER COMMUNITY. 2011. Using the GNU Compiler Collection -For GCC 4.6.1. Free Software Foundation, Inc.
- WIEPRECHT, E., BRUMFIT, J., BAKKER, J., DE CANDUSSIO, N., GUEST, S., HUYGEN, R., DE JONGE, A., MATTHIEW, J. J., OSTERHAGE, S., OTT, S., SIDDIQUI, H., VANDENBUSSCHE, B., DE MEESTER, W., WETZSTEIN, M., WIEZORREK, E., AND ZAAL, P. 2004. The HERSCHEL/PACS common software system as data reduction system. In Astronomical Data Analysis Software and Systems Conference (ADASS) XIII.
- XAMARIN. 2011. MonoTouch limitations. http://ios.xamarin.com/documentation/limitations. Received July 2011; revised May 2012; accepted August 2012