Нийтлэл 02 сарын 01, 2017

ШИНЖЛЭХ УХААН: Тооцон бодох шинжлэх ухаан гэж юу вэ?

Миний бие 2011 оноос эхлэн тооцон бодох ухааныг сонирхон судалж өдгөө тооцон бодох шингэний динамикийн өчүүхэн хэсэг дээр ирээд байна. Анх ШУТИС-д бакалавр оюутан байхдаа түшиц ханын тооцоог яагаад програмчилж болохгүй гэж гэсэн санаа төрж, интернэтээр гадаад програм байгаа эсэхийг хайж үзсэн юм. Маш олон төрлийн програм илрүүлсэн. Мөн гидравликийн (ус, агаарын хөдөлгөөнийг судлах салбар шинжлэх ухаан) маш олон програм байдгыг мэдсэн. Тэндээс л тооцон бодох ухаанд хөтлөгдөн орсон юм даа. Энэ нийтлэлээр Тооцон бодох шинжлэх ухааны талаар бага ч болов мэдээлэл түгээх гэсэн юм. Энгийнээр хэлбэл:

Тооцооллын шинжлэх ухаан нь компьютер ашиглан аливаа үзэгдлийг тооцон бодох, судлах үйл ажиллагаа юм.

Энэ нийтлэл нь ТЕХНОЛОГИ: Суперкомпьютер манай улсад нийтэлтэй холбоотой юм. 

ДНХ өндөр чадамжтай график-дүрслэлээр

Ач холбогдол нь өчүүхэн мэт боловч зайлшгүй тогтоож шийдээд цааш явах нэг босго нь аливаа юмсын "жинхэнэ нэр" юм. Эдгээр жинхэнэ нэр хаанаас гаралтай, яагаад ингэж нэрлэгдэх болсоныг нь эхлээд ойлгох хэрэгтэй. Үүний дараа эх хэл дээр минь яаж нэрлэгдэвэл аятайхан байх вэ гэдгийг бодож олох явдал юм. Хүний нэрнээс бусад нэршилийг аль болох эх хэл дээр орчуулах нь цаашид шинээр сурч буй хүмүүст чухал юм. Анх удаан бодсоны эцэст Computational Fluid dynamic гэдгийг үг үгтэй нь дүйцүүлж Тооцон бодох шингэний динамик, хуучин аргын нэршилүүдтэй ижилсүүлж Шингэний динамикийн тооцонгийн арга гэх мэтээр нэрлэж үзсэн юм. Яагаад гэвэл:

  • Analytical fluid dynamics - Шингэний динамикийн онолын арга
  • Experimental fluid dynamics - Шингэний динамикийн туршилтын арга

гэж байх ба тооцон бодох нь компьютер хүн бүрт хүрэлцээтэй болж хөгжсөний дараа гарч ирсэн шинэ арга бөгөөд өмнөх хоёр аргатайгаа ижилэвтэр нэрлэгдэх нь төсийн чанар юм. Энэ бол гидравликийн орчин үеийн судалгааны арга юм. Гэвч гидравликийн төв болсон манай багт (ШУТИС-Гидравлик, усны барилга байгууламжийн профессорын баг) энэ талаар судалдаг хүн байхгүй, мэдэх хүн байхгүй байсан учир би бээр нэрийг нь дээрх байдлаар тунгаасан хэрэг. 

Эндээс улбаалаад тооцон бодохтой холбоотой дараах вики-нүүдийг бичсэн юм.

Тооцон бодох шинжлэх ухаан

Тооцон бодох шингэний динамик 

МУИС - ийн багш нар мөн тооцон бодох математик хэмээх хичээлийг орж, ийм агуулгатай ном хэд хэвлүүлсэн нь жинхэнэ нэр гажаагүй оносон гэж ойлгох баталгаа юм. Тооцон бодох хэмээх хоёр үг заримдаа урт мэт учир шууд Тооцооллын гэвэл тохиромжтой мэт ойрд санагдах болсон. Иймд энэхүү нийтлэлд Тооцооллын шинжлэх ухаан гэж заримдаа товчлох болно. 

Тооцооллын шинжлэх ухаан гэж юу вэ?

Бид олон зүйл дээр тооцоо хэмээхийг хийдэг. Эдийн засагч, нягтлан бодогчид гараар ч тооцоо хийнэ. Компьютерээр ч тооцоо хийнэ. Тэдний өдөр тутам хийх компьютер дээрх тооцоолол нь тооцооллын шинжлэх ухаан мөн үү? гэвэл үгүй юм. 

Тооцооллын шинжлэх ухаан нь компьютерын шинжлэх ухаан, байгалийн шинжлэх ухаан болон инженерчлэлийн ухааны зангилаан дээр оршдог юм. 

Компьютерийн шинжлэх ухаан нь мэдээлэл боловсруулах, шинжлэх, техник хамгамжийн шинэчлэл, дэвшил, програмчлалын хэлний хувьсгал, оновчлол, системчлэл, үр ашигтай алгоритм боловсруулах гэх мэттэй холбогдоно.

Харин байгалийн шинжлэх ухаан болон хэрэглээний мат, физик нь аливаа юмс үзэгдлийн мөн чанарыг бүхэлд нь эсвэл тухайн тохиолдлоор нь илэрхийлэх, томъёолох, тэдгээрийгээ үнэн зөв гэдгийг батлах, турших гэх мэттэй холбогдоно. 

Инженерчлэл нь шинээр зүйлийг бүтээхийн тулд байгалийн шинжлэх ухаанд олж авсан мэдлэгийг ашиглах үйл явцтай холбогдож тооцоо судалгааг хийнэ. 

"Инженерчлэлийн болон байгалийн шинжлэх ухааны асуудлыг компьютерийн шинжлэх ухааны дэвшилийг ашиглан шийдвэрлэх үйл ажиллагааг тооцооллын шинжлэх ухаан гэнэ" гэж болохоор байна. 


Тооцооллын шинжлэх ухааны хамгийн том салбар нь тооцооллын нил орчны механик юм. Энд шингэний динамик болон хатуу биеийн динамик орно. Энэ "тооцооллын ухаан" өдгөө бараг шинжлэх ухаан инженерчлэлийн бүхий л салбарыг хамарч байна. Дэлгэрэх, нарийсах хэрээр тооцонгийн инженер гэсэн мэргэжил бий болж салбар бүр импорматиктай болж байна. Тухайлбал:

Тооцооллын шинжлэх ухаан нь дараах ерөнхий процесстой байна. 

  1. Математик загвар гаргах (үзэгдлийг илэрхийлэх дифференциал тэгшитгэл зохиох)
  2. Загвараа тооцон бодоход зориулж тухайлах (тухайлбал тоон аргууд ашиглсан математик загварыг дахин тухайлж, ойролцоолж бичих)
  3. Загварыг эсвэл судалгааны үр дүнд хялбар, үр ашигтай, үнэн зөв хүрэх алгоритмыг боловсруулах
  4. Боловсруулсан алгоритм компьютерийн хэл ашиглан компьютерт програмчлах, турших, тооцох, тохируулга хийх, баталгаажуулах
  5. Үнэн зөв үр дүнг шаардлагатай бол графикжуулах, дүрсжүүлэх үйл явц.
 
Жишээ

Инженерийн тооцоонд ижил аргачлалаар маш олон давталттайгаар тооцоо хийгдэх олон бодлого тохиолдох ба энэ нь цаг үрсэн ажил болдог. Яаж бодох нь ойлгомжтой гэтэл гараар цаг үрж бодогдож байгаа тооцоонуудыг компьютерт програмчилчихвал хичнээн амар. Бүхий л томъёонд зориулсан хэрэглээний програм гэж байхгүй (бүх мат-ыг боддог Волфрам байгаа л даа. Гэхдээ хүн бүрт хүрэлцэхгүй.). Жишээ нь: Физик болон хими, магадгүй молекул динамикт янз бүрийн хийн хурдаараа түгэх түгэлтийг илэрхийлэх Максвеллийн түгэлтийн графикийг байгуулах, хийнүүдийн молекулын характеристик хурднуудыг олох шаардлага гарахад гараар тооцоо хийнэ гэвэл хүндрэлтэй. Эксэл дээр томъёо бичиж болох ч температур болон хурдны ян бүрийн алхамд тооцооллыг хийнэ гэдэг бас төвөгтэй. Үүнийг хялбархан кодолж програмчилж дуртай хийнийхээ Максвеллийн түгэлтийн графикийг байгуулж болно. Энэ бодлогод зориулсан програмыг фортран хэл дээр бичвэл:

 

Дээрх кодыг Хүчил төрөгчийн хувьд бодуулж гаргасан Максвеллийн түгэлтийн болон түгэлтийн нийлбэрийн муруй

Томъёогоо эксэл дээр бичээд үүнийг шийдэж болно. Гэхдээ програм биччихвэл шууд өгөгдлөө өгөөд л утгаа гаргаад авна. Энэ бичсэн кодоо дараа дараагийн програмчлалд ашиглах боломжтой. Энэ бол энгийн тооцооллын шинжлэх ухааны жишээ юм. 

Яг үүнтэй адил ойлгомжтой инженерчлэлийн бодлогыг шийдэх, эсвэл хараахан ойлгомжгүй байгаа үзэгдлийг эх код бичиж загварчлан судлах нь тооцооллын шинжлэх ухааны үйл ажиллагаа болж байгаа юм. 

Тооцооллын шингэний динамикт хийх гурван гарцаагүй үйлдэл бол:

  1. Код бичих (энэ тохиолдолд математик загвар бэлэн байна. Бэлэн бус бол бэлтгэх нэг алхам урд нэмэгдэнэ.)
  2. Тооцоолол хийх, турших, тохируулга хийх, баталгаажуулах
  3. Графо-дүрслэл. Эдгээрийг доорхи зургуудаас харж болно.

 Зурагт хар дэлгэц нь терминаль бөгөөд үүн дээр кодыг машины хэлрүү хөрвүүлнэ. Фортран болон С++/С хэлнүүд нь машины хэлэнд хамгийн ойр байдаг доод түвшний хэлнүүд юм. Доод түвшний гэдэг нь муу хэл гэсэн үг биш бөгөөд шинжлэх ухааны тооцон бодох ажлуудыг уг хэлүүд дээр ихэвчлэн бичдэг. 

Тооцооллын шинжлэх ухаан бусад улсад

Улс орнуудын шинжлэх ухаан, инженерчлэлийн удирдлагын байгууллагууд тооцооллын төвүүдтэй байдаг. Тооцооллын төв байгуулахад компьютерын багц /кластер/, эсвэл супер компьютер хэрэгтэй. Мэдээж мэргэжилтэн хамгийн чухал. Америк, Хятад, Герман, Франц, Япон, Англичууд бол тооцооллын шинжлэх ухааныг чиглүүлэгчид гэж хэлж болно. Японд гэхэд хэд хэдэн супер компьютер тооцооллын ажил хийж байна. Earth simulator гэхэд л өдөр бүр завгүйгээр хүрээлэн буй орчны симуляци, цунами, үер, уур амьсгалын бодит хугацааны тооцооллыг хийж байна. Хятадад дэлхийн хамгийн том Тэнгрийн заадас хэмээх супер компьютерийг ашиглалтанд оруулж тооцонгийн болон ажилд бусад зорилгоор ашиглаад эхэлсэн. Энэ талаар дараах фэйсбүүкийн постоо хуулж авчирлаа. 

"Эксагийн дараа Зетта
Супер компютерийн эрин үе Пета /peta/ -аас Экса /Exa/ - руу чиглэж байна. Урд хөршийн төр 1986 онд Биотехнологи, Орон судлал, Мэдээллийн технологи, Лазер техниологи, Автоматжуулалт, Эрчим хүч, Шинэ материал, Машины технологи гэх мэт үндсэн чиглэлээр 863 технологийн хөтөлбөрийг эхлүүлсэнээс хойш технологийн хөгжлийг хурдасгасан гэж хэлж болно. Энэ хөтөлбөрийн ачаар 55петафлоп /petaflop/ тооцооны хүчин чадалтай дэлхийн номер нэг супер компюьтер болох "Тэнгэрийн заадас 2" -ийг Гуанзоуд 2013 онд угсраад хаячихлаа. Япончууд К компюьтерээ номер нэг болгох гэсэн боловч амжсангүй өдгөө 4-р бичигдэж байна. 1петафлоп нь 10^15 ширхэг бутархай тооны үйлдийг (FLoating-point Operation Per Second) секундэнд хийх чадварыг харуулна. Өдгөө энэ хэмжээний хүчин чадалтай тооцон бодох машин тэр бүр хангалгүй байгаа, дээр нь улс хоорондын өрсөлдөөнийг нэмээд 2020 он гэхэд Экса /10^18флоп/ хэмжээний супер компьтер хийхээр том гүрнүүд завдаж байна. Хэрэв энэ машин бүтээгдвэл хажууд нь манай ТЭЦ-III станцаас ялигүй том цахилгаан станц хэрэгтэй болох юм байна. Одоогийн пета машинууд 3МВт-ын эрчим хүчээр хангагддаг юм байна. Тэд экса тооцооллын машин дэлхийг аврах боломжтой гэж үзэж байна."

Урд хөршийнхөө амжилтанд атаархамаар. Дөнгөж 2009 онд байгуулагдсан Бээжингийн Тооцооллын шинжлэх ухааны төв гэхэд л одоогоор 225 ш.у өгүүлэл хэвлүүлж, 13 академик хурал, 11 шинжлэх ухааны хэлэлцүүлэг, 105 гаруй семинар зэргийг зохион байгуулж өндөр мэргэшсэн залуу боловсон хүчнүүдээр бэхлэгдэж сайшаагдаж байна. 

Ихэнх өндөр хөгжилтэй орны ихэнх инженер технологийн их сургуулиуд бүгд тооцооллын шинжлэх ухааны судалгааны төвүүдэй, энэ төрлийн ажлуудыг хийж байна. Энэ чиглэлд олон улс хоорондын мэдлэг туршлага солилцох маш олон хурлууд өөр өөр зорилготойгоор жил бүр зохион байгуулагдаж байна. Эдгээрийн ерөнхий зорилго нь тооцооллын шинжлэх ухааныг олон шинжлэх ухааны зангилаан дээр авчирч тэдгээрийг хооронд нь уялдуулах, нэгтгэх, эрчимжүүлэх, ингэхдээ дэвшилтэт шийдлийг техникийн болон алгоритм, тооцооллын аргын түвшинд ашиглах, хөгжүүлэх явдал юм. 

Америкын тухай мөн ч олон сайхан юм олдох байхдаа. НАСА, МИТ, Станфорд гэх мэт гайхамшигтай. Ямар ч байсан манай улс хоцроод байгаа гэдгийг л мэдэх хэрэгтэй. 

Тооцооллын шинжлэх ухааны нэг чухал дэвшил нь бодит хугацааны симуляци юм. Энэ нь бий болох процессийг бодитоор урдьчилан загварчилж харуулах зорилготой юм. Өөрөөр хэлбэл загвар болсон систем нь бодит нэг сек хугацаанд болох үзэгдлийг мөн хугацаанд гүйцэтгэж гарган харуулж чаддаг байх ёстой гэсэн үг юм. Эндээс үүдээд тодорхой хугацаанд симуляци хийх шаардлага гарч ирнэ. Энэ нь бодит хугацааны тооцоолол гэж өөр нэг дэвшил бий болгож байгаа бөгөөд энэ нь цэвэр компьютерийн хүчин чадал алгоритмын боловсрол, чадамжтай холбогдоно. Гаргахыг зорьж буй дэвшил болгон үр ашиг, хугацаа, санах ойн багтаамж хамгийн бага байх цэнзүүрийг тавьдаг. Хугацаа хожих хамгийн чухал алгоримт бол аль болох зэрэгцээ байдлаар үйлдлийг гүйцэтгэх боломж юм. Үүнийг параллель тооцоолол гэж нэрлэнэ. Хоорондоо хамааралгүй үйлдлүүдийг нэг цаг хугацаанд гүйцэтгэж хамааралтай хэсгүүдийг нь цуваа байдлаар шийдэх байдлаар энэ тооцоолол явагдана. Хайлтын янз бүрийн алгоритмтой ижил олон талын хэрэглээтэй, байнга шахуу тооцоололд ашиглагддаг дэд програмуудыг кодны сан /libraries/ байдлаар хадгалж тэлээлэн ашиглаж эхлээд байна. Ямар эх код хэрэгтэй байна, эсвэл ямар үйлдлийг гүйцэтгэмээр байна тэр болгонд хэрэгтэй эх кодыг сангаас олж авч системдээ холбож ашиглах боломжтой. Үүнтэй холбоотой өндөр чадамжит тооцоололын тухай өгүүллийг GPGPU хэрхэн ашиглахтай хамт бичсэнийг блогоос олж унших боломжтой. 

GPU ба GPGPU ашиглах, параллель тооцоолол /GPGPU and parallel computation/

КУДА Фортран ба Зэрэгцээ тооцооллын код бичих нь

Тооцооллын шинжлэх ухаан салбар бүрээс хамаарч өөр өөр бүтэц ахуйтай байна. Тухайлбал физик, механикийн салбарт ихэвчлэн хэлхээст суурилдаг бол нийгэм, эдийн засгийн тооцоололд мэдээлэл дээр суурилдаг. Мөн уур амьсгал, зарим давтагдах, адил байх шинж чанартай үзэгдэлд хуучин ажиглалт, туршилтын мэдээллүүд үндэс болдог байх жишээтэй. Хуримтлагдсан мэдээлэл дээр анализ хийн тооцоолол үйлдэх боломжийг зарим салбарт эрэлхийлж байна. Энэ нь хэт онолд суурилсанаас хямд төсөл бөгөөд мэдээллийн эрин зуунд чухал шаардлагатай юм.

Тооцооллын шинжлэх ухаан ба утаа

Улс төр, шинжлэх ухааны олон талын ач холбогдолтой тооцооллын шинжлэх ухааныг дэлгэрүүлэн судлах шаардлага их байна. Хамгийн наад захын жишээ бол Улаанбаатарын утаа юм.

Өмнө нийтлэгдсэн БОДЛОГО БОЛОВСРУУЛАГЧДАД: Улаанбаатарын утаат агаарын аэродинамик гэсэн нийтлэл дээр гарч буй УБ хотын агаарын динамикийн загварчлалыг Монголчууд өөрсдөө хийх нь Тооцон бодох шинжлэх ухаанд том эхлэл тавихтай ижил юм. Энэ загварыг өндөр нарийвчлалтай үр дүн өгдөг байхаар хийхийн тулд зэрэгцээ тооцоолол бүхий код бичих шаардлагатай. Энэ код нь суперкомпьютер, зэрэгцээ холболттой процессоруудын нэгдэл эсвэл ерөнхий зорилтот график боловсруулах нэгдэл дээр л ажиллах ёстой юм. Америк, Европт ашиглаж байгаа нээлттэй эх үүсвэр бүхий агаарын дисперси, чанарын загварчлалууд байгаа боловч Монголд мэдлэг, туршлага болгож үлдээх үүднээс өөрсдөө хийсэн нь дээр юм. Энэ загварчлалын ажил нэг талаар хэцүү биш, нөгөө талаар хялбар биш ажил юм. Дан ганц шингэний динамикаар мэргэшсэн хүн хийх боломжгүй. Цаг уур, химич, физикч, программистуудын үнэтэй зөвлөмж хамтын ажиллагаа шаардлагатай. Хамгийн гол зүйл нь энэ стратегийн ач холбогдолтой загварыг хэн нэгэн хуулийн этгээд захиалагч, өмчлөгч байж санхүүжүүлэх нь чухал юм. Агаарын динамик, чанарын загварчлалыг нэг удаад ашиглана гэж байхгүй. Жил бүр, хот бүрт, бохирдолтой байгаа газар бүрт ажиллуулж агаарын шинж чанарыг судалж ойлгох боломжтой юм. 

Шинжлэх ухааныг мөнгө дагах ёстой болохоос, мөнгийг шинжлэх ухаан дагах учиргүй. 

 

Эх сурвалж: Монголын усны барилга шинжлэх ухааны блог

Сэтгэгдэл бичих

    • Зочин
    • 2017-02-14

    NIleen reclamnii pause nohor uu gui yu. Heden analytic tegshitgel bichsen um bishuu. Andaa numerical buyu toon shiid yri ho. FORTRAN helnii talaar arail buruu tailbarlsan baina shuu. Ulaanbaatar hotiin airdynamic-iin zagvar gej yu baidag um ho. Delhii negen turul. Iim uchiraas belen model-iig ajiluuldeg delhii niitiin jishig baina ho. Mongolchuud zaaval dahij bichdeg ni yaj baigaa um bol ho. Tegeed ch naadah chini Mongold tsoo shine zuil. Ene salbar ylanguya mathematic zagvarchlal Mongold hogjood 40-50 jil bolj baina ho.

    • Зочин
    • 2017-02-02

    Өгөөжтэй сайхан нийтлэл болж. Энэ чиглэлээрээ үргэлжүүлээд залуу, шинэ үед үлгэр дууриал болоорой гэж хүсье дээ

    • Төмөрбат
    • 2017-02-02

    Улаанбаатрын утаа улс төр газрын наймаатай холилдсон болохоор хэцүү дээ !

    • Зочин
    • 2017-02-02

    Улаанбаатрын утаа улс төр газрын наймаа шингэсэн болохоор хэцүү дээ !

arrow icon