প্যারালেল কম্পিউটেশন ব্যবহার করে টেক্সটে অক্ষরের ফ্রিকোয়েন্সি গণনা করুন।
প্যারালেলিজম মানে হলো এমন কিছু কাজ প্যারালেলে করা, যেগুলো সিকোয়েন্সিয়ালিও করা যায়। এর একটি কমন উদাহরণ হলো অক্ষরের ফ্রিকোয়েন্সি গণনা করা। টেক্সটের একটি তালিকায় প্রতিটি অক্ষরের মোট ফ্রিকোয়েন্সি হিসাব করতে প্যারালেলিজম ব্যবহার করুন।
এই পরিভাষা অনুসারে আপনার একটি প্যারালাল ও ডিটারমিনিস্টিক প্রোগ্রাম লেখা উচিত, আর কনকারেন্সি-র দিকটি (অবশ্যই!) Scala-কে সামলাতে দিন। নাহলে সব রকম বাজে কনকারেন্সি bug-এর কারণে আপনার code দ্রুত বিশৃঙ্খল ও এরর-প্রবণ হয়ে উঠতে পারে। বিশেষত আপনার প্রোগ্রাম নন-ডিটারমিনিস্টিক হয়ে যেতে পারে, যার বাস্তব অর্থ হলো: এটিকে debug করা, test করা এবং এটি নিয়ে যুক্তি দাঁড় করানো ভীষণ (আসলে ভীষণই) কঠিন।
এ কথা বলার পরেও, প্রথমে একটি সিকোয়েন্সিয়াল সমাধান লেখা ভালো ধারণা হতে পারে (আর সেটি যাচাই করতে test suite ব্যবহার করা)। তারপরেই এটি প্যারালালাইজ করার চেষ্টা করুন, আর আপনার code-এর সিকোয়েন্সিয়াল ও প্যারালাল অংশগুলো যতটা সম্ভব আলাদা রাখুন।
প্রথম ইটারেশনে আপনি Scala-র parallel collections ব্যবহার করতে পারেন। দেখবেন হয়তো এটি প্রায় অতিরিক্ত সহজই লাগছে (বিশেষত যদি আপনি আমাদের পরামর্শ মেনে আগেই একটি সিকোয়েন্সিয়াল সমাধান করে ফেলেন)।
দ্বিতীয় ইটারেশনের জন্য আমরা পরামর্শ দিই যে আপনি scala.concurrent.Future দিয়ে একটি সমাধান করে দেখুন।
সাহায্যের জন্য আপনি এই টিউটোরিয়ালটি এবং এর পরবর্তী অংশটি দেখতে পারেন।
নিশ্চিত করুন যে আপনার
scala.concurrent.Future অনেক লাইব্রেরিতে ব্যবহৃত হয় এবং Scala-তে প্যারালাল ও অ্যাসিনক্রোনাস প্রোগ্রামিংয়ের জন্য এটি ডাক্তারের পরামর্শ।
তাই ভাষাটি রপ্ত করার জন্য এটি অপরিহার্য, আর এটি আপনার Scala অস্ত্রভাণ্ডারের অংশ হয়ে ওঠা উচিত।
Exercism-এ সাইন আপ করুন, Scala ট্র্যাকের 95টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।
আমরা কনকারেন্সি ও প্যারালালিজমের মধ্যে পার্থক্য নিয়ে আলোচনা করি এবং JavaScript, Go, Elixir ও Rust-এর মতো ভাষাগুলো যে বিভিন্ন পদ্ধতি অবলম্বন করে তা দেখি।