Hỗ trợ Ngôn ngữ Cấp Cao cho Các Phép Giảm Định Nghĩa Bởi Người Dùng

Springer Science and Business Media LLC - Tập 23 - Trang 23-37 - 2002
Steven J. Deitz1, Bradford L. Chamberlain2, Lawrence Snyder1
1University of Washington SEATTLE USA
2University of Washington, Seattle, USA

Tóm tắt

Việc tối ưu hóa xử lý các phép giảm trên siêu máy tính song song hoặc cụm trạm làm việc là rất quan trọng để đạt được hiệu suất cao vì các phép giảm thường xuyên xuất hiện trong mã khoa học và có thể là nguồn gây tắc nghẽn. Tuy nhiên, trong nhiều ngôn ngữ cao cấp, cơ chế viết các phép giảm hiệu quả vẫn bất ngờ vắng mặt. Thêm vào đó, khi có những cơ chế như vậy, chúng thường không cung cấp được sự linh hoạt cần thiết mà lập trình viên cần để đạt được một mức hiệu suất mong muốn. Trong bài báo này, chúng tôi trình bày một cấu trúc ngôn ngữ mới cho các phép giảm tùy ý, cho phép lập trình viên đạt được một mức hiệu suất tương đương với mức có thể đạt được nhờ sự kết hợp linh hoạt nhưng ở cấp thấp giữa Fortran và MPI. Chúng tôi đã triển khai cấu trúc này trong ngôn ngữ ZPL và đánh giá nó trong bối cảnh khởi tạo bài kiểm tra NAS MG. Chúng tôi chỉ ra một sự tăng tốc 45 lần so với cùng một mã viết bằng ZPL mà không có cấu trúc này. Thêm vào đó, hiệu suất trên một số lượng lớn bộ xử lý vượt qua hiệu suất đạt được trong triển khai NAS, cho thấy rằng cơ chế của chúng tôi cung cấp cho lập trình viên sự linh hoạt cần thiết.

Từ khóa

#siêu máy tính #phép giảm #hiệu suất #ngôn ngữ lập trình #ZPL #Fortran #MPI #NAS MG

Tài liệu tham khảo

D. Bailey, E. Barszcz, J. Barton, D. Browning, R. Carter, L. Dagum, R. Fatoohi, S. Fineberg, P. Frederickson, T. Lasinski, R. Schreiber, H. Simon, V. Venkatakrishnan, and S. Weeratunga. NAS parallel benchmarks. Technical report, NASA Ames Research Center (RNR–94–007), March 1994. D. Bailey, T. Harris, W. Saphir, R. van der Wijngaart, A. Woo, and M. Yarrow. NAS parallel benchmarks 2.0. Technical report. NASA Ames Research Center (NAS–95–020), December 1995. G. E. Blelloch. NESL: A nested data-parallel language (Version 3.1). Technical report. Carnegie Mellon (CMU-CS–95–170), September 1995. W. Blume, R. Eigenmann, K. Faigin, J. Grout, J. Hoeflinger, D. Padua, P. Petersen, W. Pottenger, L. Rauchwerger, P. Tu, and S. Weatherford. Polaris: Improving the effectiveness of parallelizing compilers. In Proceedings of the Workshop on Languages and Compilers for Parallel Computing, 1994. B. L. Chamberlain, S.-E. Choi, E. C. Lewis, C. Lin, L. Snyder, and W. D. Weathersby. ZPL's WYSIWYG performance model. In Proceedings of the IEEE Workshop on High-Level Parallel Programming Models and Supportive Environments, 1998. B. L. Chamberlain, S. J. Deitz, and L. Snyder. A comparative study of the NAS MG benchmark across parallel languages and architectures. In Proceedings of the ACM Conference on Supercomputing, 2000. B. L. Chamberlain, E. C. Lewis, C. Lin, and L. Snyder. Regions: An abstraction for expressing array computation. In Proceedings of the ACM International Conference on Array Programming Languages, 1999. A. L. Fisher and A. M. Ghuloum. Parallelizing complex scans and reductions. In Proceedings of the ACM Conference on Programming Language Design and Implementation, 1994. High Performance Fortran Forum. High Performance Fortran Language Specification, Version 2.0. 1997. O. Ibarra, M. C. Rinard, and P. C. Diniz. On the complexity of commutativity analysis. In Proceedings of the International Computing andCombinatorics Conference, 1996. R. E. Ladner and M. J. Fischer. Parallel prefix computation. In Proceedings of the IEEE International Conference on Parallel Processing, 1977. J. R. Larus, B. Richards, and G. Viswanathan. C**: A large-grain, object-oriented, data-parallel programming language. Technical report. University of Wisconsin-Madison (1126), November 1992. J. R. Larus, B. Richards, and G. Viswanathan. Parallel programming in C**: A large-grain data-parallel programming language. In G. V. Wilson and P. Lu, eds., Parallel Programming Using C++. MIT Press, Cambridge, MA, 1996. B. Lu and J. Mellor-Crummey. Compiler optimization of implicit reductionsfor distributed memory multiprocessors. In Proceedings of the International Parallel Processing Symposium, 1998. M. C. Rinard and P. C. Diniz. Commutativity analysis: A new analysis framework for parallelizing compilers. In Proceedings of the ACM Conference on Programming Language Design and Implementation, 1996. S.-B. Scholz. On defining application-specific high-level array operations by means of shape-invariant programming facilities. In Proceedings of the ACM International Conference on Array Programming Languages, 1998. M. Snir, S. W. Otto, S. Huss-Lederman, D. W. Walker, and J. Dongarra. MPI: The Complete Reference. MIT Press, Cambridge, MA, 1996. L. Snyder. Programming Guide to ZPL. MIT Press, Cambridge, MA, 1999. T. Suganuma, H. Komatsu, and T. Nakatani. Detection and global optimization of reduction operations for distributed parallel machines. In Proceedings of the ACM International Conference on Supercomputing, 1996. G. Viswanathan and J. R. Larus. User-defined reductions for efficient communication in data-parallel languages. Technical report. University of Wisconsin-Madison (1293), January 1996.