EXPERIMENTAL EVALUATION OF PARALLEL PROGRAM SCALABILITY ON XEON PHI SMP

EXPERIMENTAL EVALUATION OF PARALLEL PROGRAM SCALABILITY ON XEON PHI SMP. Masters thesis, King Fahd University of Petroleum and Minerals.

[img]
Preview
PDF
ALLAM_FATAYER_THESIS.pdf

Download (3MB) | Preview

Arabic Abstract

قانون مور اصبح يتجه الى نهايته، ويظهر ذلك جليا في ظهور المعالجات متعددة الأنويه. البرمجة لهذه الرقائق تظهر تحديات ومشاكل جديدة في وجه المبرمجين. في هذا السياق، نقوم على تقييم تجريبي لتدرجية البرامج الموازية في المعالجات عديدة النواة ذات التماثلية باستخدام نموذج برمجة OpenMP. قمنا باختيار فئتين من التطبيقات. الفئة الأولى التطبيقات ذات الحمل الثابت والفئة الثانية التطبيقات ذات الحمل المتغير. في الفئة الأولى قمنا باختيار ضرب المصفوفات والتي تصنف من مكتبة علم الجبر الأساسي، وايضا تم اختيار تطبيق من التحليل العددي في حل المعادلات الخطية يطلق عليه اسم JACOBI. في حقيقة الأمر قمنا بتحليل وتنفيذ وتحسين هذه البرامج. في ضرب المصفوفات قمنا باستخدام خوارزمية STRASSEN والتي لها حساب تعقيد اقل من حساب التعقيد لعملية ضرب المصفوفات الأساسية. التحسين لدينا يعتمد على اعادة ترتيب المصفوفات البينية لتقليل الحجم المطلوب، واستخدام المشي الأولي للمصادر، بالإضافة الى استدعاء المكتبة MKL للمصفوفات ذات الحجم الصغير. النتائج اثبتت ان طريقتنا استطاعة ان تتغلب على استخدام المكتبة MKL لوحدها في احجام المصفوفات الكبيرة بنسبه تتراوح من 8% الى 24%. في تطبيق JACOBI لوحظ عدم تدرجية اداءه بسبب الاحتياج الكبير للمزامنة في اثناء التنفيذ و خصوصا في التكرير ما بين جميع ال Thread العاملة. لتحسين العمل تم استكشاف ثلاث انواع من التطبيق 1) المتزامن 2) الغير متزامن 3)المتزامن المسترخي. في المتزامن تم استخدام مزامنه واضحه للعيان. في الغير متزامن تم حذف المزامنة وفي الحالة الأخيرة تم اعادة كتابة المزامنة وذلك من خلال السماح بالتداخل ما بين عمليات التكرار باستخدام النتائج الجزئية من كل Thread. يجدر الإشارة ان الغير متزامن يستخدم النتائج الحالية والتي يمكن ان تكون خليط من النتائج السابقة والحديثة والتي تقلل من سرعة التقاء الخوارزمية بالحل. النتائج اظهرت ان المزامنة تأخذ 50% من وقت النفيذ في حالة المصفوفة بحجم 4096. الغير متزامن يعطي افضل النتائج بسبب حذف المزامنة ولكن في حالة قبول الحل التقريبي. في حالة الحل الدقيق فإن التزامن المسترخي اظهر تحسن بالإداء على التزامن بمقدار, 57.16% 24.4% 32.6%, 32.6% في الأحجام 3840 7680 15360 30720 باستخدام 60 نواة. في الفئة الثانية تم اختيار مشكلة كلاسيكية تحاكي حركة الأجسام في الفراغ تدعي (N-body). تم تنفيذ حل تقريبي للمشكلة باستخدام خوارزمية Barn-Hut. تعتمد هذه الخوارزمية على بنية الشجرة الثمانية لتمثيل توزيع الأجسام بالفراغ. حيث يتم تخزين البيانات التراكمية للكتلة المركزية في كل عقدة، للشجرات الجزئية التي اسفلها. وايضا من تحديات الخوارزمية هو تغير توزيع الحمل على ال Thread عند الانتقال من خطوة الى الثانية وذلك بسبب حركة الأجسام في الفراغ. للتحسين تم تطوير توزيع للحمل بشكل ديناميكي بالإضافة الى زيادة محلية البيانات. النتائج اظهرت ان الحمل التراكمي يتناسب بشكل خطي مع وقت التنفيذ باستخدام احجام مختلفة تتراوح من 1 مليون الى 4 مليون. بالإضافة الى ذلك فان هناك تحسين بالتسريع للعملية بمقدار 42% و 36% في المشاكل بحجم 1 مليون و 4 مليون مقارنه بالطريقة الثابتة لتوزيع الأحمال. إن هذه الطريقة نوصي باستخدامها كاستراتيجية في تحسين المترجمات عند القيام بترجمة للمشاكل ذات الحمل المتغير

English Abstract

As the time of Moore’s Law and expanding CPU clock rates nears its halting point the condense of chip and hardware design has moved to expanding the number of cores present on the chip. These increase can be most clearly seen in the rise of the Many Integrated Core processors (MIC). Programming for these chips delivers another set of difficulties and concerns In this context, I present an experimental evaluation of parallel program scalability on the MIC Shared Memory Multiprocessor (SMP) using OpenMP programing paradigm. I address two classes of applications 1) Static and 2) Semi static. For first class I select a set of applications from the class of Basic Linear Algebra and numerical algorithms (Matrix-Matrix Multiplication (MM) and JACOBI SOLVER). Particularly, I analysis, optimize and implement these applications. For MM I used the STRASSEN matrix multiplication algorithm. The basic Strassen-MM (S-MM) algorithm time complexity of is O (N2.807) instead of O (N3) of standard MM algorithm. my optimizations are based on a reordering approach to reduce the storage, use of a depth first walk (DFW), and invocation of the MKL optimized library for matrix-matrix multiplications. The results of MM using STRASSEN outperform Math Kernel Library (MKL) within large matrix size with percentage from 8% to 24%. For JS, I noticed that it does not scale well because of the excessive synchronization overhead, which must be implemented across all the working threads. To improve JS scalability, I explored (1) Synchronous Jacobi (SJ), (2) Asynchronous Jacobi (AJ), and Relaxed Jacobi (RJ). In SJ I used explicate barrier synchronization. In AJ a non-exact solution is computed because completing threads start the next iterations using current data, which is a mixing of new and old. AJ slows down the convergence rate. In RJ, completing threads at iteration K start the next iteration (k+1) using newly computed data. RJ provides overlap between two iterations at the cost of managing the availability of currently available intermediate results. Experiments show that SJ synchronization time takes 50% from the execution time on matrix size 4096. For exact solutions, my evaluation shows a performance gain of 24.4%, 32.6%, 38.9%, and 57.16% for RJ over SJ for matrices of size 3840, 7680, 15360 and 30720, respectively using 60 cores. For the second class, I select a semi static classical problem (N-Body simulation). In this application, an approximated solution using BARNES-HUT algorithm (BH) is implemented. BH uses an oct-tree, in which each node stores the aggregate mass of all of its children nodes (sub-tree) at their center of mass. Another problem is that the thread load moderately changes from one iteration to another due to body motion in space. A Dynamic Load Balancing (DLB) combined with data locality approach is used to improve Scalability, I call it Iterative Cost Zone Load Balancing (ICZB). My implementation on MIC shows that the execution time and aggregate load scales linearly with the problem size when using 60 cores for problem sizes within the range of 1 million to 4 million. In addition, my DLB-BH provides an increased speedup of 42% and 36% on problem size 1 million and 4 million respectively, as compared to traditional static BH. DLB is recommended as a compiler strategy as one optimization strategy for semi-static applications.

Item Type: Thesis (Masters)
Subjects: Computer
Engineering
Department: College of Computing and Mathematics > Computer Engineering
Committee Advisor: Al-Mouhamed, Mayez
Committee Members: Al-Khatib, Wasfi and Mudawar, Muhamed
Depositing User: FATAYER AL ABDALGANI (g201003720)
Date Deposited: 18 Mar 2015 08:03
Last Modified: 01 Nov 2019 15:45
URI: http://eprints.kfupm.edu.sa/id/eprint/139478