খুব বেশিদিন আগের কথা নয়। এই ধরুন, বছর পঞ্চাশেক হবে! তখন পৃথিবীর সবচেয়ে ছোট কম্পিউটার ছিল এখনকার একটি বড়সড় হলরুমের সমান! এখন হয়ত ঐ কম্পিউটারের থেকে ১০ গুণ বেশি শক্তিশালী কম্পিউটার কোলের উপর নিয়ে বসে, খুব আয়েশ করে আপনি এই আর্টিকেল পড়ছেন! একটি রুমের সমান জায়গা দখল করা কম্পিউটার তো আজকের সময়ে কল্পনাতীত। প্রযুক্তির দ্রুত উন্নতির সাথে সাথে এভাবেই দিনকে দিন ক্ষুদ্র থেকে ক্ষুদ্রতর হয়ে যাচ্ছে বিভিন্ন ডিভাইস। ট্রানজিস্টর আর Integrated Circuits (IC)- এর উন্নতির সাথে সাথে সেই রুমের সমান জায়গা দখল করা কম্পিউটারের জায়গা হয়েছে আপনার কোলে, নখের আয়তনের সমান মাইক্রোচিপের বদৌলতে!

সুপারকম্পিউটার Tianhe-2, MILKYWAY-2 নামেও পরিচিত; Source: astronomynow.com

ধরুন, আপনি সেই আগের সময়ের মতো রুম সাইজের কম্পিউটার তৈরি করলেন যার পুরোটাই এরকম শক্তিশালী মাইক্রোচিপ দিয়ে ভরা! তাহলে কী হবে ভাবুন একবার। তেমন কিছু হবে না, আপনি পাবেন একটি সুপার কম্পিউটার! এই সুপার কম্পিউটার আপনার কোলের কম্পিউটার থেকে লক্ষ গুণ বেশি দ্রুতগতির হবে। আর নিমিষেই করে ফেলবে জটিল থেকে জটিলতর বৈজ্ঞানিক সমস্যার সমাধান। মাথায় প্রশ্ন তো আসছেই, কী এমন জিনিস এই সুপার কম্পিউটার? কোর আই-৭ কম্পিউটারের সাথে কী-ই বা এর পার্থক্য? চলুন দেখে নেওয়া যাক তাহলে।

সুপার কম্পিউটার কী?

এই প্রশ্নের উত্তর জানার আগে আমরা বরং কম্পিউটারের সংজ্ঞাটা একটু ঝালিয়ে নেই। সহজ ভাষায়, কম্পিউটার হলো একটি মেশিন যা ডেটা একটি পদ্ধতিতে গ্রহণ করে (ইনপুট নেয়), সংরক্ষণ ও প্রক্রিয়াজাত (প্রসেস) করে এবং পরবর্তীতে ফলাফল (আউটপুট) দেয়।

সুপার কম্পিউটার মানেই যে কেবল দ্রুতগতির বিশাল কম্পিউটার, এমনটা নয়। এটি সম্পূর্ণ ভিন্ন পদ্ধতিতে কাজ করে। সাধারণ একটি কম্পিউটার যেখানে ক্রমিক বা সিরিয়াল প্রসেসিং করে, সুপার কম্পিউটার ব্যবহার করে সমান্তরাল বা প্যারালাল প্রসেসিং। মানে হলো, আপনার-আমার কম্পিউটার যেখানে একটি নির্দিষ্ট সময়ে একটি মাত্র কাজ করে, সেখানে সুপার কম্পিউটার ঐ সময়েই অনেকগুলো কাজ করতে পারে। ঠিক স্পষ্ট হলো না তো? তাহলে চলুন একটু গভীরে যাই।

সৌদি আরবে অবস্থিত সুপারকম্পিউটার SANAM; Source: phys.org

ক্রমিক ও সমান্তরাল প্রসেসিং

ক্রমিক আর সমান্তরাল প্রসেসিং এর মধ্যে পার্থক্যটা কোথায়? একটি সাধারণ কম্পিউটার একেক সময়ে একেকটি কাজ  করে। অর্থাৎ ক্রমিক প্রসেসিং করে। ধরুন, একজন লোক একটি সুপার শপের চেক-আউটের কাছে দাঁড়িয়ে ১০টি পণ্য একে একে অপারেটরের কাছে দিচ্ছেন। অপারেটর স্ক্যানার মেশিন দিয়ে স্ক্যান করে সেগুলোকে প্যাক করার জন্য রাখছেন। ঐ লোকটি কত তাড়াতাড়ি জিনিসগুলো নিয়ে অপারেটরের কাছে গেছেন, শুধুমাত্র তার উপর কিন্তু শপিংয়ের মোট সময় নির্ভর করবে না। সময় নির্ধারিত হবে স্ক্যানার কত তাড়াতাড়ি স্ক্যান করতে পারছে সেটার উপর ভিত্তি করে, যা সবসময় একক সময়ে একটি পণ্য স্ক্যান করার ক্ষমতা রাখে। অর্থাৎ একের পর এক পণ্য স্ক্যান করতে স্ক্যানারকে মোট ১০ বার আলাদা আলাদাভাবে স্ক্যান করতে হবে। এই উদাহরণ যদি আপনি বুঝে থাকেন, তাহলে সেটাই হলো ক্রমিক প্রসেসিং।

আবার ধরুন, অন্য একদিন ঐ লোকই সাথে ৯ জন বন্ধু নিয়ে দোকানে গেছেন এবং আগের মতোই ১০টি পণ্য কিনেছেন। কিন্তু এবার তিনি সব পণ্য নিয়ে এক অপারেটরের কাছে না গিয়ে তার প্রত্যেক বন্ধুকে একটি করে পণ্য দিয়ে দিলেন। তারা সবাই নিজের কাছে থাকা পণ্য নিয়ে আলাদা আলাদা ১০ জন অপারেটরের কাছে চলে গেলেন। আলাদা অপারেটর থাকার কারণে তাদের সব পণ্য একক সময়েই স্ক্যান হয়ে গেল। আর এর ফলে তাদের সময় লাগল আগের দিনের ১০ ভাগের ১ ভাগ! আর এটাই হলো সমান্তরাল প্রোসেসিং। সুপার কম্পিউটারও ঠিক এভাবেই কাজ করে, মূল কাজটিকে কয়েক ভাগে বিভক্ত করে ফেলে। সাধারণ কম্পিউটারের সাথে সুপার কম্পিউটারের মূল পার্থক্যও এই জায়গাতেই।

ক্রমিক (বামে) ও সমান্তরাল (ডানে) প্রসেসিং; Source: direct-root.com

যে কারণে সুপার কম্পিউটার সমান্তরাল প্রসেসিং ব্যবহার করে

আমরা অনেকেই কম্পিউটারে সাধারণত যে কাজগুলো করি, তা আসলে খুবই নগণ্য। যেমন, ইন্টারনেট ব্যবহার, ইমেইল করা, ডকুমেন্ট লেখা- এগুলো আসলে খুব কম প্রসেসিং ক্ষমতা ব্যবহার করে। কিন্তু আপনি যখন একটু জটিল কাজে যাবেন, তখন কিন্তু ভালো প্রসেসর চাই। আপনারা যারা কম্পিউটার গেম খেলে অভ্যস্ত, তারা হয়ত দেখে থাকবেন, প্রতিটি গেম খেলার জন্য একটি ন্যুনতম প্রসেসিং পাওয়ার, মেমরি কিংবা গ্রাফিক্সের দরকার হয়। যদি আপনার কম্পিউটারের প্রসেসর দুর্বল হয়, তাহলে বেশি উন্নত গেম খেলা সম্ভব নয়। কিন্তু সেক্ষেত্রে যদি আপনি দ্বিগুণ ক্ষমতার একটি প্রসেসর আর দ্বিগুণ র‍্যাম নিয়ে আসেন, তাহলে দেখবেন আপনার কম্পিউটারের গতি কী দারুণভাবে পাল্টে যায়!

সুপারকম্পিউটার Titan; Source: futurism.com

এবারে ধরে নিন, আপনি একজন বিজ্ঞানী। নতুন একটি ক্যান্সারের ওষুধ পরীক্ষা করা কিংবা ২০৫০ সালের জলবায়ু কেমন হবে তা খুঁজে বের করা আপনার কাজ। এ ধরনের জটিল সমস্যা পৃথিবীর সেরা কম্পিউটারগুলোকেও সীমায় বেঁধে দেয়! আপনি যেভাবে আপনার নিজের কম্পিউটারের প্রসেসর-মেমোরি বদলে আরও দ্রুতগতির করতে পারেন, ঠিক সেটাই করতে পারেন একটি বিশ্বমানের সেরা কম্পিউটারের সাথে। কিন্তু তারপরেও তো সীমিত ক্ষমতা দূর করা যাবে না। তাই সব থেকে সেরা উপায় হলো, সমান্তরাল প্রসেসিং ব্যবহার করা- নতুন প্রসেসর যুক্ত করুন, সমস্যাকে টুকরো টুকরো করে ভাগ করুন আর প্রতিটি প্রসেসরকে একইসাথে প্রতিটি টুকরোর উপর কাজ করান!

ব্যাপক সমান্তরাল প্রসেসিং (Massively Parallel Processing)

যখন বিজ্ঞানীরা সমান্তরাল প্রসেসিংয়ের ব্যাপারটা বুঝতে পারলেন, তখন তারা একটি কম্পিউটারে বেশি বেশি প্রসেসর ব্যবহার করার দিকেই মত দিলেন। যেখানে একটি কম্পিউটারে হাজার হাজার প্রসেসর আপনি ব্যবহার করতে পারছেন, সেখানে মাত্র দু-তিনটি প্রসেসর কেনই বা ব্যবহার করবেন! ১৯৯০ সাল থেকে বিভিন্ন সুপার কম্পিউটারেই হাজার হাজার প্রসেসর ব্যবহার করা হচ্ছে। আর এ ব্যাপারটি ‘Massively Parallel Processing’ নামে পরিচিত। আর এই মুহূর্তে পৃথিবীর সব থেকে দ্রুতগতির সুপারকম্পিউটার ‘Sunway TaihuLight’ এর প্রসেসরের সংখ্যা হলো ১,০৬,৪৯,৬০০টি!

বর্তমানের দ্রুততম গতির সুপারকম্পিউটার Sunway TaihuLight; Source: top500.org

তবে সমান্তরাল প্রসেসিংয়ের জন্মই হয়েছে একটি অপূর্ণতা নিয়ে! অপূর্ণতাটা কী, সেটা একটু পরে বলছি। তার আগে চলুন আগের সেই সুপারমার্কেটের উদাহরণ থেকে ঘুরে আসা যাক। ঐ ব্যক্তি যখন তার ১০ জন বন্ধুকে আলাদা করে পণ্যগুলো দিয়েছিলেন, তখন স্বাভাবিকভাবেই তাদের মোট সময়টুকু অনেক বেঁচে গিয়েছিল। কিন্তু এটা করা সত্ত্বেও যে ব্যাপারটা তাদের আরেকটু সময় ব্যয় করিয়েছিল সেটা হলো- পণ্যগুলোকে নিজেদের মধ্যে ভাগবাটোয়ারা করার জন্য প্রয়োজনীয় সময়। কে কোন পণ্যটি নেবে তার উপর সময় তো ব্যয় হবেই। তাহলে একবার ভাবুন, এখানে যদি ১০০ জন লোক থাকে এবং প্রত্যেককে একটি করে পণ্য দিতে হয় তাহলে ঐ লোকটার কতটুকু সময় প্রয়োজন! আর ঠিক এটাই হলো সুপারকম্পিউটার তৈরিতে সবচেয়ে বড় চ্যালেঞ্জ! একটি কম্পিউটারে লক্ষ লক্ষ প্রসেসর ঢুকিয়ে দেওয়া হয়ত খুব বেশি কঠিন হবে না। কিন্তু তার থেকেও যা কঠিন হবে তা হলো, এদের সবার মধ্যে মূল কাজের ভাগ-বাটোয়ারা করা। আর এর জন্য প্রয়োজন হয় একটি কেন্দ্রীয় ম্যানেজমেন্ট সিস্টেম, যা সম্পূর্ণ কাজটিকে ভাগ করে সবার মধ্যে বণ্টন করে দেয়।

সুপার কম্পিউটার প্রধানত যে কাজগুলো করে

সাধারণ কম্পিউটারের মতো সুপার কম্পিউটারকেও আপনি সাধারণ কাজে ব্যবহার করতে পারেন। কিন্তু এই বিশেষ কম্পিউটারের জন্মই আসলে হয়েছে আরও জটিল সমস্যার সমাধান করার জন্য। জটিল গাণিতিক সমস্যার সমাধান, কম্পিউটারের সিকিউরিটি কোডের শক্তিমত্তা পরীক্ষা কিংবা নিউক্লিয়ার মিসাইল টেস্ট করা- এসব কিছুই সুপার কম্পিউটারের জটিল কাজের অংশবিশেষ! আবার কিছু কিছু সুপার কম্পিউটার তৈরি হয়েছে কোনো নির্দিষ্ট কাজের জন্যই। IBM কোম্পানি ১৯৯৭ সালে Deep Blue নামে একটি মেশিন তৈরি করে। একে তৈরি করা হয়েছিল রাশিয়ান গ্র্যান্ড মাস্টার গ্যারি ক্যাস্পারভের প্রতিপক্ষ হয়ে দাবা খেলার জন্য! ক্যাস্পারভের বিপক্ষে প্রথম ম্যাচ জিতে গেলেও সিরিজে ৪-২ ব্যবধানে হেরে যায় Deep Blue!

Gary Kasparov বনাম Deep Blue; Source: roboticsandautomationnews.com

সুপার কম্পিউটারে যে অপারেটিং সিস্টেম ব্যবহৃত হয়

আপনি হয়ত বেশ অবাক হবেন এটা জেনে যে, সুপার কম্পিউটারগুলো চলে আপনার পিসিতে চলা অপারেটিং সিস্টেমের (ওএস) মতো ওএস দিয়ে! আগে প্রায় সকল সুপার কম্পিউটারই চালানো হতো Unix দিয়ে। কিন্তু এখনকার সুপার কম্পিউটারে প্রধানত লিনাক্স ওএস ব্যাপকভাবে ব্যবহৃত হচ্ছে। তাছাড়া সুপার কম্পিউটারগুলো সাধারণত বৈজ্ঞানিক সমস্যা নিয়ে কাজ করে বিধায়, এদের অ্যাপ্লিকেশন প্রোগ্রামগুলোও C এবং C+ এর মতো প্রোগ্রামিং ভাষা দিয়েই তৈরি।

ফিচার ইমেজ- সুপারকম্পিউটার Cori; nersc.gov