Skip to content

ការបែងចែកដែន

នៅពេលវិភាគសំណាញ់ទ្រង់ទ្រាយធំដោយប្រើដំណើរការច្រើនជាប៉ារ៉ាឡែលគេត្រូវបែងចែកសំណាញ់នៃដែនតែមួយទៅជាដែនរងជាមុនហើយបង្កើតព័ត៌មានដែលត្រូវការសម្រាប់ដែនទទួលខុសត្រូវរបស់ដំណើរការនីមួយៗ និងសម្រាប់ការទំនាក់ទំនងរវាងដែន។ ដំណើរការមុននេះហៅថាការបែងចែកដែន។

ក្នុងការគណនាប៉ារ៉ាឡែលរបស់ FrontISTR hecmw_part1 បែងចែកសំណាញ់ដែនតែមួយទៅជាដែនរងហើយបង្កើតទិន្នន័យសំណាញ់ចែកចាយ។ ទិន្នន័យសំណាញ់ចែកចាយដែលបានបង្កើតត្រូវបានអានដោយ fistr1 ប៉ារ៉ាឡែលហើយប្រើជាមួយព័ត៌មានដែលត្រូវការសម្រាប់ការទំនាក់ទំនងរវាងដែនក្នុងសូលវ័រប៉ារ៉ាឡែល។

ទំព័រនេះពន្យល់អំពីប្រភេទការបែងចែកវិធីសាស្ត្របែងចែកជម្រៅការត្រួតគ្នានិងរបៀបដោះស្រាយចំណុចការប៉ះដែលត្រូវជ្រើសរើសក្នុងការបែងចែកដែន។ សម្រាប់នីតិវិធីដំណើរការ hecmw_part1 ទម្រង់លម្អិតនៃឯកសារគ្រប់គ្រងនិងសារកំហុសសូមមើលផ្នែកពាក់ព័ន្ធ។

ទិដ្ឋភាពទូទៅនៃមុខងារ

ការបែងចែកដែនគឺជាដំណើរការបែងចែកសំណាញ់ដែនតែមួយទៅជាដែនរងជាច្រើន។ ក្នុង FrontISTR ទិន្នន័យសំណាញ់ចែកចាយត្រូវបានបង្កើតដោយបន្សំប្រភេទការបែងចែកវិធីសាស្ត្របែងចែកចំនួនដែននិងជម្រៅការត្រួតគ្នា។

អ័ក្សជម្រើស ជម្រើសសំខាន់ តួនាទី
ប្រភេទការបែងចែក ការបែងចែកផ្អែកលើថ្នាំង, ការបែងចែកផ្អែកលើធាតុ កំណត់ថាតើប្រើថ្នាំងឬធាតុជាឯកតាសម្រាប់កំណត់សមាជិកភាព។
វិធីសាស្ត្របែងចែក RCB, METIS (pMETIS / kMETIS) កំណត់របៀបបង្កើតព្រំដែនរវាងដែន។
ចំនួនដែន ចំនួនគត់វិជ្ជមានណាមួយ (សម្រាប់ RCB គឺ \(2^n\)) កំណត់ចំនួនដែនរងក្នុងទិន្នន័យសំណាញ់ចែកចាយ។ ជាទូទៅឱ្យស្មើនឹងចំនួនដំណើរការ MPI។
ជម្រៅការត្រួតគ្នា ចំនួនគត់ចាប់ពី 1 ឡើងទៅ កំណត់វិសាលភាពដែលដែនជាប់គ្នារក្សាទុកជាន់គ្នា។ កំណត់សម្រាប់ការបែងចែកផ្អែកលើថ្នាំង។
តារាងទំនាក់ទំនង ព័ត៌មាននាំចូល/នាំចេញនិងព័ត៌មានចែករំលែក កំណត់ការផ្លាស់ប្តូរទិន្នន័យដែលត្រូវការរវាងដែនរងជាប់គ្នា។ ត្រូវបានបង្កើតដោយស្វ័យប្រវត្តិនៅពេលបែងចែកដែន។

ដោយសារតារាងទំនាក់ទំនងត្រូវបានរួមបញ្ចូលក្នុងទិន្នន័យសំណាញ់ចែកចាយអ្នកប្រើជាទូទៅមិនចាំបាច់កែដោយផ្ទាល់ក្នុងការវិភាគធម្មតាទេ។ fistr1 ប៉ារ៉ាឡែលអានទិន្នន័យសំណាញ់ចែកចាយនេះហើយដោះស្រាយសមីការលីនេអ៊ែរដោយវិធីផ្ទាល់ប៉ារ៉ាឡែលដូចជា MUMPS ឬវិធីធ្វើម្តងទៀត។

របៀបជ្រើសការបែងចែកដែន

សម្រាប់ការវិភាគរចនាសម្ព័ន្ធនិងការវិភាគចម្លងកម្តៅទូទៅគួរពិចារណាការបែងចែកផ្អែកលើថ្នាំងជាមុន។ វាងាយស្រួលគ្រប់គ្រងការទំនាក់ទំនងតម្លៃថ្នាំងដែលត្រូវការក្នុងការវិភាគធាតុកំណត់ប៉ារ៉ាឡែលហើយអាចកំណត់ជម្រៅការត្រួតគ្នាបាន។ ការបែងចែកផ្អែកលើធាតុសមស្របជាជម្រើសនៅពេលចង់គ្រប់គ្រងព័ត៌មានក្រោយការបែងចែកដោយផ្អែកលើធាតុដូចជាក្នុងការវិភាគភ្ជាប់គ្នា។

ជ្រើសវិធីសាស្ត្របែងចែកតាមរូបរាងនិងចំនួនដែន។ សម្រាប់រូបរាងសាមញ្ញនិងចំនួនដែនដែលអាចកំណត់ជា \(2^n\) បាន RCB ជាជម្រើសសាមញ្ញនិងមានស្ថិរភាព។ សម្រាប់រូបរាងស្មុគស្មាញឬនៅពេលចង់បែងចែកជាចំនួនដែនណាមួយ METIS ដែលផ្អែកលើការបែងចែកក្រាហ្វជាជម្រើសសមស្រប។

លក្ខណៈបញ្ហា ជម្រើសដែលបានណែនាំ
ការវិភាគប៉ារ៉ាឡែលស្តង់ដារសម្រាប់រចនាសម្ព័ន្ធឬចម្លងកម្តៅ ការបែងចែកផ្អែកលើថ្នាំង
ការប្រើប្រាស់ព័ត៌មានចែកចាយផ្អែកលើធាតុដូចជាការវិភាគភ្ជាប់គ្នា ការបែងចែកផ្អែកលើធាតុ
រូបរាងសាមញ្ញប្រហាក់ប្រហែលប្រអប់និងចំនួនដែន \(2^n\) RCB
រូបរាងស្មុគស្មាញឬចំនួនដែនណាមួយ METIS
បញ្ហាការប៉ះឬបញ្ហា MPC លក្ខខណ្ឌកំហិតដែលប្រើ SAINV បុរេលក្ខខណ្ឌ ប្រើការបែងចែកផ្អែកលើថ្នាំងនិងកំណត់ជម្រៅការត្រួតគ្នាឱ្យបាន 2 ឬច្រើនជាងនេះ

ជាទូទៅចំនួនដែនត្រូវកំណត់ឱ្យស្មើនឹងចំនួនដំណើរការ MPI។ សម្រាប់នីតិវិធីប្រតិបត្តិប៉ារ៉ាឡែលនិងការកំណត់ចំនួនដំណើរការសូមមើល ការវិភាគដោយដំណើរការប៉ារ៉ាឡែល។ សម្រាប់ទំនាក់ទំនងរវាង SAINV បុរេលក្ខខណ្ឌនិងជម្រៅការត្រួតគ្នាសូមមើលផងដែរ សូលវ័រនិងបុរេលក្ខខណ្ឌ

ប្រភេទការបែងចែក

ប្រភេទការបែងចែកកំណត់ថាតើឯកតាណាមួយក្នុងសំណាញ់ត្រូវបានផ្តល់សមាជិកភាពតែមួយទៅដែនរងមួយ។ ក្នុងការបែងចែកផ្អែកលើថ្នាំងគេកំណត់សមាជិកភាពរបស់ថ្នាំងខណៈការបែងចែកផ្អែកលើធាតុកំណត់សមាជិកភាពរបស់ធាតុ។ ក្នុងទាំងពីរករណីព័ត៌មានដែលត្រូវការសម្រាប់ការគណនាជាមួយដែនរងជាប់គ្នាត្រូវបានរក្សាទុកជាការត្រួតគ្នា។

ការបែងចែកផ្អែកលើថ្នាំង

ក្នុងការបែងចែកផ្អែកលើថ្នាំងគេកំណត់ដែនរងសមាជិកតែមួយសម្រាប់ថ្នាំងទាំងអស់។ ក្នុងដែនរងជាប់គ្នាធាតុត្រូវបានរក្សាទុកជាន់គ្នា។ ក្នុងបញ្ចូលកំណត់ដោយ !PARTITION, TYPE=NODE-BASED

គំនិតនៃការបែងចែកផ្អែកលើថ្នាំង

រូប 10.1 គំនិតនៃការបែងចែកផ្អែកលើថ្នាំង

ដែនរងនីមួយៗរក្សាទុកថ្នាំងខាងក្នុងធាតុដែលមានថ្នាំងខាងក្នុងនិងថ្នាំងដែលបង្កើតធាតុទាំងនោះ។

ថ្នាំងនិងធាតុដែលដែនរងនីមួយៗរក្សាទុកក្នុងការបែងចែកផ្អែកលើថ្នាំង

រូប 10.2 ថ្នាំងនិងធាតុដែលដែនរងនីមួយៗរក្សាទុកក្នុងការបែងចែកផ្អែកលើថ្នាំង

តារាងទំនាក់ទំនងសម្រាប់ការបែងចែកផ្អែកលើថ្នាំងមានព័ត៌មានដូចខាងក្រោម។

  • ថ្នាំងនាំចូល: ក្នុងចំណោមថ្នាំងដែលប្រើក្នុងដែនរងគឺថ្នាំងដែលជាសមាជិករបស់ដែនរងផ្សេង។
  • ថ្នាំងនាំចេញ: ថ្នាំងខាងក្នុងដែលក្លាយជាថ្នាំងនាំចូលរបស់ដែនរងផ្សេង។
  • ធាតុចែករំលែក: ធាតុដែលចែករំលែកជាមួយដែនរងផ្សេង។

ថ្នាំងនាំចូលក្នុងការបែងចែកផ្អែកលើថ្នាំង

រូប 10.3 ថ្នាំងនាំចូលក្នុងការបែងចែកផ្អែកលើថ្នាំង

ថ្នាំងនាំចេញក្នុងការបែងចែកផ្អែកលើថ្នាំង

រូប 10.4 ថ្នាំងនាំចេញក្នុងការបែងចែកផ្អែកលើថ្នាំង

ធាតុចែករំលែកក្នុងការបែងចែកផ្អែកលើថ្នាំង

រូប 10.5 ធាតុចែករំលែកក្នុងការបែងចែកផ្អែកលើថ្នាំង

ការបែងចែកផ្អែកលើធាតុ

ក្នុងការបែងចែកផ្អែកលើធាតុគេកំណត់ដែនរងសមាជិកតែមួយសម្រាប់ធាតុទាំងអស់។ ក្នុងដែនរងជាប់គ្នាថ្នាំងត្រូវបានរក្សាទុកជាន់គ្នា។ ក្នុងបញ្ចូលកំណត់ដោយ !PARTITION, TYPE=ELEMENT-BASED

គំនិតនៃការបែងចែកផ្អែកលើធាតុ

រូប 10.6 គំនិតនៃការបែងចែកផ្អែកលើធាតុ

ដែនរងនីមួយៗរក្សាទុកធាតុខាងក្នុងថ្នាំងដែលបង្កើតធាតុខាងក្នុងនិងធាតុដែលមានថ្នាំងទាំងនោះ។

ថ្នាំងនិងធាតុដែលដែនរងនីមួយៗរក្សាទុកក្នុងការបែងចែកផ្អែកលើធាតុ

រូប 10.7 ថ្នាំងនិងធាតុដែលដែនរងនីមួយៗរក្សាទុកក្នុងការបែងចែកផ្អែកលើធាតុ

តារាងទំនាក់ទំនងសម្រាប់ការបែងចែកផ្អែកលើធាតុមានព័ត៌មានដូចខាងក្រោម។

  • ធាតុនាំចូល: ក្នុងចំណោមធាតុដែលប្រើក្នុងដែនរងគឺធាតុដែលជាសមាជិករបស់ដែនរងផ្សេង។
  • ធាតុនាំចេញ: ធាតុខាងក្នុងដែលក្លាយជាធាតុនាំចូលរបស់ដែនរងផ្សេង។
  • ថ្នាំងចែករំលែក: ថ្នាំងដែលចែករំលែកជាមួយដែនរងផ្សេង។

ធាតុនាំចូលក្នុងការបែងចែកផ្អែកលើធាតុ

រូប 10.8 ធាតុនាំចូលក្នុងការបែងចែកផ្អែកលើធាតុ

ធាតុនាំចេញក្នុងការបែងចែកផ្អែកលើធាតុ

រូប 10.9 ធាតុនាំចេញក្នុងការបែងចែកផ្អែកលើធាតុ

ថ្នាំងចែករំលែកក្នុងការបែងចែកផ្អែកលើធាតុ

រូប 10.10 ថ្នាំងចែករំលែកក្នុងការបែងចែកផ្អែកលើធាតុ

សម្រាប់ប្រភេទការបែងចែកទាំងពីរតារាងទំនាក់ទំនងត្រូវបានបង្កើតដោយស្វ័យប្រវត្តិដោយ hecmw_part1 ហើយសរសេរទៅក្នុងទិន្នន័យសំណាញ់ចែកចាយ។ ដូច្នេះក្នុងការវិភាគធម្មតាអ្នកប្រើមិនចាំបាច់បង្កើតព័ត៌មាននាំចូល/នាំចេញដោយផ្ទាល់ទេ។

វិធីសាស្ត្របែងចែក

វិធីសាស្ត្របែងចែកបង្ហាញរបៀបកំណត់ព្រំដែននៃដែនរង។ FrontISTR អាចប្រើ RCB ដែលផ្អែកលើតម្លៃកូអរដោនេនិង METIS ដែលផ្អែកលើការបែងចែកក្រាហ្វ។

វិធីសាស្ត្របែងចែក លក្ខណៈ កំហិតនិងចំណាំសំខាន់
RCB បែងចែកជាពីរម្តងហើយម្តងទៀតដោយផ្អែកលើតម្លៃកូអរដោនេ។ អាចបែងចែករូបរាងសាមញ្ញបានលឿន។ ចំនួនដែនត្រូវបានកំណត់ត្រឹម \(2^n\)។ ត្រូវបញ្ជាក់អ័ក្សបែងចែក។
pMETIS ផ្អែកលើការបែងចែកក្រាហ្វហើយបែងចែកដោយគិតគូរពីការតភ្ជាប់រវាងដែន។ អាចប្រើបាននៅក្នុងប៊ីលដ៍ដែលបើក METIS។
kMETIS ផ្អែកលើការបែងចែកក្រាហ្វទៅដែនច្រើនហើយងាយបង្កើតព្រំដែនដែនសម្រាប់រូបរាងស្មុគស្មាញ។ អាចប្រើបាននៅក្នុងប៊ីលដ៍ដែលបើក METIS។

RCB ជាអក្សរកាត់នៃ Recursive Coordinate Bisection ហើយធ្វើការបែងចែកសំណាញ់ជាពីរតាមអ័ក្សកូអរដោនេជាបន្តបន្ទាប់។ វាសមស្របនៅពេលចំនួនដែនអាចកំណត់ជា \(2^n\) និងងាយប្រើសម្រាប់រូបរាងសាមញ្ញប្រហាក់ប្រហែលប្រអប់។

METIS ចាត់ទុកការតភ្ជាប់របស់សំណាញ់ជាក្រាហ្វ ហើយបង្កើតដែនរងដោយការបែងចែកក្រាហ្វ។ វាជាជម្រើសនៅពេលរូបរាងស្មុគស្មាញឬមិនចង់កំណត់ចំនួនដែនត្រឹម \(2^n\)។ ដើម្បីប្រើ METIS ត្រូវបើកបណ្ណាល័យ METIS នៅពេលប៊ីលដ៍។ សម្រាប់បណ្ណាល័យអាស្រ័យសូមមើល បណ្ណាល័យអាស្រ័យចាំបាច់និងជម្រើស

ជម្រៅការត្រួតគ្នា

ជម្រៅការត្រួតគ្នាគឺជាចំនួនស្រទាប់នៃវិសាលភាពដែលដែនរងជាប់គ្នារក្សាទុកជាន់គ្នា។ សម្រាប់ការបែងចែកផ្អែកលើថ្នាំងអាចកំណត់ចំនួនគត់ចាប់ពី 1 ឡើងទៅដោយប៉ារ៉ាម៉ែត្រ DEPTH នៃ !PARTITION។ បើមិនកំណត់ជម្រៅការត្រួតគ្នាលំនាំដើមគឺ 1។

ក្នុងការវិភាគប៉ារ៉ាឡែលទូទៅ DEPTH=1 គ្រប់គ្រាន់។ ប៉ុន្តែនៅពេលប្រើ បុរេលក្ខខណ្ឌប្រភេទ SAI ដូចជា SAINV សម្រាប់បញ្ហាការប៉ះឬ MPC លក្ខខណ្ឌកំហិតការបង្កើនជម្រៅការត្រួតគ្នាទៅ 2 ឬច្រើនជាងនេះអាចកែលម្អគុណភាពបុរេលក្ខខណ្ឌ។

ដូចគ្នានេះដែរនៅពេលប្រើជ្រើសរើសគែម/ថ្នាំងការធ្វើឱ្យរលូនរូបមន្ត (FORM341=SELECTIVE_ESNS) សម្រាប់ធាតុតេត្រាហេដ្រុងលំដាប់ទីមួយ 341 ជាមួយ MPI ប៉ារ៉ាឡែលត្រូវកំណត់ជម្រៅការត្រួតគ្នាឱ្យបាន 2 ឬច្រើនជាងនេះ។ ព្រោះការធ្វើឱ្យរលូនផ្អែកលើគែម/ផ្អែកលើថ្នាំងធ្វើមធ្យមភាគបរិមាណរបស់ធាតុជាប់គ្នានឹងធាតុគោលដូច្នេះការបង្កើតភាពរឹងក្នុងដែនរងត្រូវការព័ត៌មានធាតុ "ជាប់បន្ទាប់មួយទៀត" ហើយ DEPTH=1 លំនាំដើមមិនគ្រប់គ្រាន់សម្រាប់ការធ្វើឱ្យរលូនជិតព្រំដែនដែន។ សម្រាប់ព័ត៌មានលម្អិតនៃរូបមន្តធាតុសូមមើល បណ្ណាល័យធាតុ

ការបង្កើនជម្រៅការត្រួតគ្នាបង្កើនចំនួនថ្នាំងនិងធាតុដែលដែនរងជាប់គ្នាត្រូវរក្សាទុកដូច្នេះការប្រើអង្គចងចាំនិងបរិមាណទំនាក់ទំនងក៏កើនឡើង។ គួរកំណត់ដោយប្រៀបធៀបការកែលម្អភាពរួមជាមួយការកើនឡើងនៃថ្លៃគណនា។ សម្រាប់ការជ្រើសបុរេលក្ខខណ្ឌសូមមើល សូលវ័រនិងបុរេលក្ខខណ្ឌ

របៀបដោះស្រាយចំណុចការប៉ះ

នៅពេលបែងចែកសំណាញ់ដែលមានការប៉ះគូអាចកំណត់គោលការណ៍ដាក់ចំណុចការប៉ះទៅតាមដែនដោយប៉ារ៉ាម៉ែត្រ CONTACT នៃ !PARTITION។ ការដាក់ចំណុចការប៉ះប៉ះពាល់ដល់ស្ថិរភាពនិងបរិមាណទំនាក់ទំនងនៃការវិភាគប៉ារ៉ាឡែលដែលមានការប៉ះស្វែងរកនិងការប៉ះលក្ខខណ្ឌកំហិត។

តម្លៃ តួនាទី
DEFAULT ប្រើគោលការណ៍ដាក់លំនាំដើម។
SIMPLE មិនផ្តល់ទម្ងន់ពិសេសដល់ចំណុចការប៉ះហើយប្រើការដាក់ប្រហាក់ប្រហែលការបែងចែកធម្មតា។
AGGREGATE បែងចែកក្នុងទិសដៅដែលប្រមូលក្រុមថ្នាំងពាក់ព័ន្ធនឹងការប៉ះគូឱ្យនៅជុំគ្នា។
DISTRIBUTE បែងចែកក្នុងទិសដៅដែលថ្នាំងខាងមេរបស់ការប៉ះមិនប្រមូលផ្តុំខ្លាំងនៅដែនរងណាមួយ។

សម្រាប់សំណាញ់ដែលគ្មានការប៉ះមិនចាំបាច់យកចិត្តទុកដាក់លើប៉ារ៉ាម៉ែត្រ CONTACT ទេ។ បើមានបញ្ហាភាពរួមឬបន្ទុកតុល្យភាពក្នុងការវិភាគប៉ារ៉ាឡែលដែលមានការប៉ះគួរពិនិត្យគោលការណ៍ដាក់ចំណុចការប៉ះឡើងវិញ។ សម្រាប់ទម្រង់បញ្ចូលលម្អិតសូមមើល !PARTITION

ដោយឯករាជ្យពីនេះអាចជ្រើសរបៀបភាពជាម្ចាស់នៃការប៉ះប៉ារ៉ាឡែលដោយប៉ារ៉ាម៉ែត្រ CONTACT_OWNERCONTACT កំណត់ថា "បែងចែកយ៉ាងដូចម្តេច" ខណៈ CONTACT_OWNER កំណត់ថា "បន្ទាប់ពីបែងចែកខាងណាជាអ្នកទទួលខុសត្រូវ"។

តម្លៃ តួនាទី
MASTER របៀបមេភាពជាម្ចាស់ (លំនាំដើម)។ បែងចែកមេផ្ទៃតាមដែនដែលកាន់កាប់ធាតុហើយចម្លងរងថ្នាំងទៅកាន់ដែនមេភាពជាម្ចាស់នីមួយៗ។
SLAVE របៀបរងភាពជាម្ចាស់។ រងថ្នាំងត្រូវរក្សាទុកតែក្នុងដែនដែលកាន់កាប់វាហើយមេផ្ទៃទាំងមូលត្រូវដាក់ទៅដែននោះ។

ក្នុងកំណត់រអិល (INTERACTION=FSLID នៃ !CONTACT) ប្រសិនបើរងថ្នាំងឆ្លងព្រំដែនបែងចែកដែនរបស់មេផ្ទៃរបៀប MASTER អាចធ្វើឱ្យការស្វែងរកតំបន់ជាប់គ្នាផ្អាកនៅព្រំដែនហើយបាត់បង់ការប៉ះស្ថានភាពនិងកកិតប្រវត្តិដែលធ្វើឱ្យលទ្ធផលពឹងផ្អែកលើចំនួនដែន។ SLAVE ជៀសវាងបញ្ហានេះ។ អាចកំណត់បានតែពេល TYPE=NODE-BASED ហើយការប្រើអង្គចងចាំក្នុងដែនដែលកាន់កាប់រងនឹងកើនឡើង។

ការបញ្ចេញរូបភាពការបែងចែកដែន

បើកំណត់ប៉ារ៉ាម៉ែត្រ UCD នៃ !PARTITION អាចបញ្ចេញឯកសារ UCD សម្រាប់ពិនិត្យលទ្ធផលបែងចែក។ ឯកសារ UCD អាចប្រើជាមួយឧបករណ៍មើលរូបភាពដូចជា MicroAVS ដើម្បីពិនិត្យលេខដែននិងព្រំដែនបែងចែក។

បន្ទាប់ពីផ្លាស់ប្តូរចំនួនដែនវិធីសាស្ត្របែងចែកឬជម្រៅការត្រួតគ្នាគួរពិនិត្យថាមិនមានការលំអៀងនៃដែនដែលបានបែងចែកឬការបែងចែកតូចខុសធម្មតា។ UCD បញ្ចេញជាមុខងារជំនួយសម្រាប់ពិនិត្យភាពសមស្របនៃការបែងចែកមុនពេលដំណើរការវិភាគប៉ារ៉ាឡែល។

ប្រធានបទពាក់ព័ន្ធ