منصوبے کے بارے میں

Bend ایک اعلیٰ سطح کی پروگرامنگ زبان ہے جو وسیع پیمانے پر متوازی عمل کے لیے ڈیزائن کی گئی ہے، جسے HigherOrderCO نے تیار کیا ہے اور یہ HVM2 رن ٹائم کے ذریعے چلتی ہے۔ اس کا مقصد Python اور Haskell جیسی زبانوں کی اظہار کی صلاحیت کو CUDA طرز کے GPU کمپیوٹنگ کے اسکیلنگ رویے کے ساتھ ملانا ہے۔ README میں نمایاں کی گئی زبان کی خصوصیات میں تیز آبجیکٹ اللاکیشن، کلوزرز کے ساتھ اعلیٰ درجے کے فنکشنز کی مکمل سپورٹ، بلا روک ٹوک recursion، اور continuations شامل ہیں۔ متوازی عمل ضمنی ہے: README کے مطابق تھریڈ بنانے، لاکس، میوٹیکسز یا ایٹامکس کی کوئی ضرورت نہیں ہے۔ جو کوڈ متوازی طور پر چل سکتا ہے وہ متوازی طور پر چلے گا، جس میں کور کی تعداد کے مطابق تقریباً لکیری رفتار میں اضافہ ہوتا ہے، اور پروجیکٹ کا دعویٰ ہے کہ یہ 10000 سے زیادہ بیک وقت چلنے والے تھریڈز کی سپورٹ فراہم کرتا ہے۔ انسٹالیشن Rust کے cargo کے ذریعے کی جاتی ہے۔ صارفین `cargo install hvm` سے HVM2 رن ٹائم انسٹال کرتے ہیں، پھر `cargo install bend-lang` سے زبان انسٹال کرتے ہیں۔ ہدایات میں Linux اور macOS شامل ہیں، جبکہ Windows کے لیے WSL2 تجویز کیا گیا ہے۔ CUDA رن ٹائم کے لیے NVIDIA CUDA ٹول کٹ 12.x درکار ہے، اور README میں بتایا گیا ہے کہ فی الحال صرف NVIDIA GPUs سپورٹڈ ہیں۔ پروگرام کئی بیک اینڈز کے ذریعے چلائے جا سکتے ہیں: `bend run-rs` ایک متوالی Rust انٹرپریٹر استعمال کرتا ہے، `bend run-c` ایک متوازی C انٹرپریٹر استعمال کرتا ہے، اور `bend run-cu` ایک وسیع پیمانے پر متوازی CUDA انٹرپریٹر استعمال کرتا ہے۔ Bend کوڈ کو `gen-c` اور `gen-cu` کے ذریعے اسٹینڈ اکیلے C یا CUDA فائلوں میں بھی کمپائل کیا جا سکتا ہے، حالانکہ README کوڈ جنریٹر کو ابتدائی مرحلے کی چیز قرار دیتا ہے۔ ایک `-s` فلیگ reductions، رن ٹائم، اور فی سیکنڈ تعاملات کی رپورٹ دیتا ہے۔ README ایک متوالی بمقابلہ متوازی جمع کی مثال کے ذریعے واضح کرتا ہے کہ تقسیم اور فتح کی صورت کیسے خودکار متوازی عمل کو ممکن بناتی ہے۔ یہ ایک bitonic sorter بینچ مارک بھی پیش کرتا ہے جس کے بتائے گئے اوقات یہ ہیں: Rust انٹرپریٹر کے ذریعے Apple M3 Max CPU پر 12.15 سیکنڈ، اسی CPU پر C انٹرپریٹر کے ذریعے 0.96 سیکنڈ، اور CUDA انٹرپریٹر کے ذریعے NVIDIA RTX 4090 GPU پر 0.21 سیکنڈ۔ یہ اعداد پروجیکٹ کی اپنی طرف سے بتائی گئی پیمائش ہیں۔ README خبردار کرتا ہے کہ موجودہ ورژن کی سنگل کور کارکردگی کم ہو سکتی ہے اور کہ کارکردگی میں بہتری آئے گی جیسے جیسے کوڈ جنریشن اور آپٹیمائزیشن کی تکنیکیں ترقی کرتی ہیں۔ اضافی وسائل میں HVM2 پیپر، ایک GUIDE.md، ایک FEATURES.md، ایک examples فولڈر، اور ایک Discord کمیونٹی شامل ہیں۔