شماره ركورد :
1080987
عنوان مقاله :
روشي كارآمد براي تعريف توابع چندمتغيره با الگوهاي عبارت براي آرايه ها در زبان سي پلاس پلاس و كودا
عنوان به زبان ديگر :
An Efficient Method for Defining Multivariate Functions Using Expression Templates for Arrays in C++ and CUDA
پديد آورندگان :
محمودي داريان، حسين دانشگاه تهران - دانشكده مهندسي - دانشكده فني
تعداد صفحه :
19
از صفحه :
113
تا صفحه :
131
كليدواژه :
الگوهاي عبارت , الگوهاي متغير , سي پلاس پلاس , پردازنده هاي گرافيكي , كودا
چكيده فارسي :
در اين مقاله يك روش كارآمد براي تعريف توابع چندمتغيره با الگوهاي عبارت براي محاسبات آرايه اي در زبان برنامه نويسي سي پلاس پلاس جهت استفاده در شبيه سازي هاي ديناميك سيالات محاسباتي معرفي مي شود. پياده سازي روش با استفاده از الگوهاي متغير كه از قابليت هاي جديد زبان سي پلاس پلاس است، صورت مي گيرد. سادگي استفاده براي كاربران در زمينه هاي محاسباتي، از مزاياي روش مي باشد، طوري كه كاربر بدون نياز به اطلاع از مفاهيم برنامه نويسي با الگوها به راحتي مي تواند تابع خود را با هر تعداد آرگومان ورودي تعريف و سپس استفاده نمايد. روش حاضر مي تواند جايگزين الگوهاي عبارت مرسوم در توسعه كتابخانه هاي عددي باشد. براي سه تابع مختلف، شامل عمليات حسابي و توابع مثلثاتي، كارايي روش ارائه شده با روش الگوهاي عبارت مرسوم، دو نحو مختلف زبان سي پلاس پلاس و زبان فرترن براي آرايه هايي با اندازه هاي مختلف، مقايسه مي شود. به علاوه كارايي روش از لحاظ زمان ترجمه و حجم فايل اجرايي با مترجم هاي مختلف نشان داده مي شود. مقايسه مشابهي روي پردازنده هاي گرافيكي با زبان كودا صورت مي گيرد و كارايي روش نشان داده مي شود. نتايج بيانگر آن است كه روش حاضر براي هر تعداد درايه به لحاظ زمان محاسبات، زمان ترجمه و حجم فايل اجرايي كارايي بسيار خوبي دارد. در نهايت به عنوان كاربردي از روش پيشنهادي يك شبيه سازي عددي انجام مي گيرد.
چكيده لاتين :
In this paper an efficient method for defining multi-variable functions using expression templates for array computations in computational fluid dynamics simulations in C++ is introduced. The method is implemented using variadic templates which is a new feature in C++. One of the advantages of the method is its easy of use for users of computational fields. The user can define and use his own function with any number of input arguments without having knowledge of templates programming concepts. The present method may replace conventional expression templates in developing numerical libraries. For three different functions, including arithmetic operations and trigonometric functions, the efficiency of the proposed method for arrays of different sizes is compared with that of the conventional expression templates, two different C++ syntax and Fortran language. Furthermore, the performance of the method in terms of the compilation time and executable file size is demonstrated. A similar comparison on Graphic Processing Units (GPU) using CUDA is made and the efficiency of the method is shown. The results indicate that, for any array size, the present method has a very good performance in terms of computational time, compilation time and executable file size. Finally, as an application of the proposed method, a numerical simulation is done.
سال انتشار :
1397
عنوان نشريه :
مدل سازي در مهندسي
فايل PDF :
7672030
عنوان نشريه :
مدل سازي در مهندسي
لينک به اين مدرک :
بازگشت