Pipeline

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

Мэдээллийг боловсруулах програм хангамжийн төрөл бүрийн шийдлүүдийг боловсруулах явцад нэг програмын өгөгдлийг өөр бусад нь авч ашиглах тохиолдол маш их гардаг билээ. Жишээ нь линукс систем дээр "тайлан" гэсэн үг орсон нэр бүхий файлуудыг хайж олоод тэдгээр файлуудыг хэрэглэгчийн мэйл хаягруу илгээхэд pipeline -г ашиглаж болох юм. Эхний програм нь тухайн нэр бүхий файлуудыг хайж олох ба олдсон мэдээллийг мэйл илгээдэг програмруу pipeline ашиглан дамжуулж болно.

Өгөгдлийг параллелиар боловсруулах үед хэрэглэгдэх өөр нэг жишээг авч үзье. Маш олон оюутнуудын дүнгийн голчийг аль болон богино хугацаанд боловсруулах програм зохиох хэрэгтэй болсон гэж үзье. Оюутнуудын дүнг нэг бүрчлэн дараалсан маягаар тооцоолоход ихээхэн цаг хугацаа зарцуулагдах бөгөөд тухайн сервер компьютерийн процессорийн нэг л цөм бүх ажлыг хийж гүйцэтгэнэ. Тухайн сервер компьютерийн олон процессорын олон цөмийг зэрэг ачааллан олон зэрэгээр боловсруулалт хийхэд pipeline -г дараах байдлаар ашиглаж болох юм.

Pipeline software
Pipeline software

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

Дээрх тохиолдолд өгөгдлийг олон зэрэгцээ просессуудад хуваарилахад pipeline -г ашиглаж байгаа бөгөөд ингэснээр мэдээлэл боловсруулж байгаа зэрэгцээ процесууд дээр маань өгөгдлийн төлөөх өрсөлдөөн үүсэхгүй, улмаар өгөгдлийг түгжиж хандах шаардлагагүй учир гүйцэтгэл хамгийн өндөр байх боломжийг бүрдүүлж байгаа юм.

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