বৈজ্ঞানিক গণনার জন্য অপ্রচলিত প্রোগ্রামিং ভাষা ব্যবহার [বন্ধ]


22

দ্রষ্টব্য: নিম্নলিখিত পোস্টে বিতর্কিত মতামত অন্তর্ভুক্ত থাকতে পারে, সুতরাং দয়া করে মনে রাখবেন যে এগুলি কেবল আমার মতামত, এবং কাউকে আপত্তি করার উদ্দেশ্যে নয়।

আমি ১৯৯৯ সাল থেকে কোনও না কোনও রূপে প্রোগ্রামিং করছি I আমি প্রথমে আর ব্যবহার করেছি এবং তারপরে, ২০০৪-এর দিকে প্রায়শই পাইথনে চলে এসেছি।

অনেকগুলি বৈজ্ঞানিক অ্যাপ্লিকেশনগুলির জন্য, উদাহরণস্বরূপ, সিমুলেশন, এমসিএমসির মতো জিনিসগুলি সহ, আর এবং পাইথন উভয়ই খুব ধীর এবং দ্রুত গতিতে হবে। এটি করার স্বাভাবিক উপায় হ'ল সি বা সি ++ দিয়ে প্রসারিত করা। আর এবং পাইথন উভয়ের জন্যই, আমি এটিই করেছি, সি ++ এর সাথে আর এর সি এপিআই এবং পাইথনের বুস্ট পাইথন লাইব্রেরি ব্যবহার করে।

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

1) যতদূর ভাববাদিতা যায়, আর আর পাইথন উভয়ই আমার মতে বৈজ্ঞানিক অ্যালগরিদম লেখার জন্য সত্যই আদর্শ নন। তারা অন্তর্নিহিত অ্যালগরিদমের নিকট থেকে মানচিত্র দেয় না। তবে তারা উভয়ই সি ++ এর চেয়ে যথেষ্ট উন্নত better

2) আমি পাইথনে লেখা উপভোগ করি যা একটি মনোরম ভাষা, যদিও উপরে উল্লিখিত রয়েছে এটি অ্যালগরিদমিক কাজের জন্য আদর্শ নয়। যাইহোক, যখন গতি সমস্যার কারণে যখন পাইথন / সি ++ সংমিশ্রণের সাথে কাজ করতে হয়, তখন এই মিশ্রণটি কাজ করতে যথেষ্ট কম আনন্দদায়ক হয়ে ওঠে। সাধারণত যা ঘটে তা হ'ল আমি প্রথমে পাইথনে লিখি, এবং আমার কিছু ভাল কাজ করার পরে প্রায়শই আবিষ্কার করুন যে এটি খুব ধীর (কিছুটা ধীরের স্বার্থগত মানের জন্য)। আমি তখন সি ++ এ পুনর্লিখনের জন্য কিছু অযৌক্তিক পরিমাণ সময় ব্যয় করব কিনা বা অলসতা সহ্য করব কিনা সেই সিদ্ধান্তের মুখোমুখি আমি। অন্ধকারে আমি প্রায়শই অনুভব করি যেহেতু আমি স্বচ্ছলতা বজায় রেখে ভাল ছিলাম, বিশেষত প্রাপ্ত স্পিডআপগুলি অনাকাঙ্ক্ষিত as এছাড়াও, দুজনের মধ্যে বুস্ট পাইথন ইন্টারফেসটি একটি গুরুত্বপূর্ণ রক্ষণাবেক্ষণের মাথাব্যথা, এবং দুটি খুব আলাদা ভাষায় কোড থাকা যেমন একসাথে আটকানো কেবল বিভ্রান্তিকর। বুস্ট পাইথনের কোনও সমালোচনা উদ্দেশ্য নয়, এটি এমন একটি শক্তিশালী ইন্টারফেস যা কেউ কল্পনা করতে পারে, এবং বেশিরভাগ সময় ঠিক কাজ করে।

সীমাহীন সময় এবং সংস্থান সহ এখন একটি আদর্শ বিশ্বে এই সমস্যাগুলির কোনওটিই বড় চুক্তি হবে না। তবে, বৈজ্ঞানিক প্রকল্পগুলিতে আমি কাজ করেছি, আমি নিম্নলিখিত অভিজ্ঞতা পেয়েছি।

প্রকল্পে আমার সহযোগী থাকুক বা না থাকুক, আমি সবসময় কমপিউটিংয়ের বিস্তৃত অংশটি শেষ করে দেই বলে মনে করি। মোট ৫ টি উল্লেখযোগ্য প্রকল্পে আমার কেবলমাত্র একটি প্রকল্পে একজনের কাছ থেকে যথেষ্ট অংশগ্রহণ ছিল। একজন ব্যক্তি তার ওজন টানানোর চেয়ে আরও বেশি কিছু করেছেন; তিনি আমার বা তার চেয়ে বেশি কিছু করেছেন। তবে একাধিক সহযোগীর সাথে প্রকল্প সহ অন্যান্য সমস্ত ক্ষেত্রে আমি সমস্ত গণনার কাজ করেছি (কার্যত)। যদিও আমি বলতে পারি যে আমাকে সেরা সহযোগীদের দ্বারা আশীর্বাদ করা হয়নি (এটি অলসতা এবং অযোগ্যতার মিশ্রণ বলে মনে হয়) ভবিষ্যতে এই অবস্থার পরিবর্তন হওয়ার সম্ভাবনা রয়েছে কিনা তা আমার কাছে পরিষ্কার নয়।

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

আমি যতদূর বলতে পারি, খুব কম লোকই বৈজ্ঞানিক গণনার জন্য সিএল বা ওক্যামল ব্যবহার করেন। এই সাইটটি অনুসন্ধান করতে গিয়ে, আমি সিএল (একটি আমার) এবং দুটি ওকামেলের (খনি) এর দুটি উল্লেখ পেয়েছি। ফ্রাঞ্জের উপর কাজ করা দু: সাহসিক কাজ করার লোকের সাথে আমি কয়েক বছর ধরে উত্সাহী যোগাযোগ করেছি। ২০০৮ সালে আমি পিটার সিবেলের "প্রাকটিক্যাল কমন লিস্প" (যার মালিকানাধীন), তমাস কে। প্যাপের একটি বই পর্যালোচনা পেয়েছিলাম । এটি আমার দৃষ্টি আকর্ষণ করেছে, যেহেতু লিস্পের জন্য বৈজ্ঞানিক কম্পিউটিংয়ের কয়েকটি উল্লেখের মধ্যে এটি ছিল যে আমি নেট থেকে এসেছি। আমি তমাসকে লিখেছিলাম, যিনি তাত্ক্ষণিকভাবে সহায়ক ও উত্সাহ দিয়ে জবাব দিয়েছেন। তাকে উদ্ধৃত করা

আমার প্রোগ্রামিংয়ের উত্পাদনশীলতা সম্ভবত লিস্পের সাথে দশগুণ বেড়েছে, তবে এটি ঘটতে প্রায় এক বছর সময় লেগেছে এবং আমি এখনও শিখছি (যদিও 2 মাস পরে আমি বেশ ভাল করছি)। সুতরাং আপনি যদি সময়-সমালোচনামূলক কোনও বিষয়ে কাজ করে থাকেন তবে স্যুইচটি স্থগিত করুন।

আপনার লোকেরা সিএল-তে জিজ্ঞাসা করা বিবেচনা করা উচিত, আমি কেবল এই বিষয়গুলি সম্পর্কে জানি না, অন্যরা লিস্পে বৈজ্ঞানিক কম্পিউটিং করেন।

তাঁর একটি ব্লগ এবং একটি গিটহাব পৃষ্ঠা রয়েছে

আমি আরেকজনের সাথে সংক্ষিপ্তভাবে চিঠিটি দিয়েছিলাম (২০০ 2006 সালের ডিসেম্বরে) ছিলেন ইরা কালেট , যিনি রেডিয়েশন অনকোলজির প্রসঙ্গে কমন লিস্প ব্যবহার করেছেন।

সম্ভবত এমন আরও অনেকে আছেন যারা লিস্পে বৈজ্ঞানিক কম্পিউটিং করেন তবে আমি কারও সম্পর্কে চিনি না।

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

আমি সিএল সম্পর্কে আমার চেয়ে ওকামল সম্পর্কে আরও কম জানি, তবে বিকল্প হিসাবে এটি ছুঁড়েছি। এটি অনুমান করা খুব দ্রুত, ফরাসী গবেষকরা এটির একটি নিখরচায় বাস্তবায়ন করেছেন এবং এটি বৈজ্ঞানিক কম্পিউটিংয়ের জন্য ভাষার এমএল পরিবারের সবচেয়ে কার্যকর হিসাবে দেখা যায়।

উপসংহারে, আমি ভাবছি যে অন্যদের সাথে এটির অভিজ্ঞতা আছে কিনা, এবং তাদের যদি কোন চিন্তাভাবনা থাকে তবে।

সম্পাদনা: আমি বেশিরভাগ প্রথম হাতের অভিজ্ঞতায় আগ্রহী, আমি উপরে উল্লিখিত বিষয়গুলির প্রসঙ্গে। উদাহরণস্বরূপ আপনি যদি পাইথন এবং সি ++ (বা আর এবং সি ++) ব্যবহার করেন এবং আরও অস্পষ্ট ভাষায় সরিয়ে থাকেন তবে আমি আপনার অভিজ্ঞতাগুলি শুনতে সবচেয়ে আগ্রহী হব।


2
স্ট্যাক এক্সচেঞ্জ প্রশ্ন জিজ্ঞাসার জন্য, জীবনের গল্প পোস্ট করার জন্য নয়! আপনার প্রশ্নটি মনে হচ্ছে "কমন লিস্প বা ওক্যামল ব্যবহার করে কোনও বৈজ্ঞানিক কম্পিউটিং প্রকল্প রয়েছে", তাই না?
খিনসেন

4
রাজি হয়েছি, এটি একটি ব্লগ পোস্টের মতো আরও কিছুটা পড়ে, তবে আমি এই মতটি পছন্দ করি। যে কোনও সুযোগ আপনি চেষ্টা করতে এবং এটি 2-3 অনুচ্ছেদে হ্রাস করতে পারেন?
আরন আহমদিয়া

1
সম্মতও হয়েছেন। ভাষ্য এবং ব্যক্তিগত অভিজ্ঞতা ভাল যখন এটি মূল প্রশ্নটিকে সমর্থন করে; অত্যধিক বিবরণ মূল পয়েন্টগুলি জলাঞ্জলি করতে পারে। যদি আপনি আপনার প্রশ্নটি ঘনীভূত করতে পারেন তবে আমার মনে হয় এটি পড়তে সহজ হবে এবং এটি আরও লক্ষ্যবস্তু, উচ্চ মানের প্রতিক্রিয়া পেতে পারে।
জেফ অক্সবেরি

1
@ ফাহিমমিঠা: "আদর্শ বিশ্বে" আপনি মধ্যপথের মধ্য দিয়ে উল্লেখ করেছেন এটি হ্যান্ড-অপটিমাইজড সমাবেশ হবে ... আমার কাছে বিরক্ত লাগছে!
meawoppl

3
@ ফাহিমমিঠা: আপনার প্রশ্নকে উন্নত করতে আপনি যেটা করতে পারেন তা আমার মনে হয় যে প্রশ্নটি আপনি জিজ্ঞাসা করছেন তা পরিষ্কার করে দেওয়া। দেখে মনে হচ্ছে আপনি নিজের অভিজ্ঞতা সম্পর্কে একটি গল্প বলছেন (যা ঠিক আছে) এবং তারপরে আপনি আপনার গল্পের শেষে একটি বিবৃতি হিসাবে প্রশ্নটি দাফন করেন। ("উপসংহারে, আমি ভাবছি ...") আপনি যা করতে পারেন তা সবচেয়ে ভাল কাজটি সেই অংশটিকে একটি প্রশ্ন করা, যাতে আপনার প্রশ্নকে মেশানো লোকেরা সহজেই আপনি কী জিজ্ঞাসা করছেন তা সনাক্ত করতে পারে। এটি বের করার জন্য আমাকে কয়েকবার ফিরে যেতে হয়েছিল।
জিফ অক্সবেরি

উত্তর:


18

আমরা উন্নত জুলিয়া জন্য ঠিক উত্থাপিত কারণে। এখানে উচ্চতর স্তরের বৈজ্ঞানিক কম্পিউটিং ভাষা নেই যা যথেষ্ট পরিমাণে পারফরম্যান্স দিয়েছিল যে আপনাকে নিজের কোডের কিছু অংশ সি / ফোর্টরানটিতে পুনরায় লিখতে হবে না। জুলিয়ার নকশায় মোটামুটি লিস্পের প্রভাব রয়েছে, তাই আপনি এটি আপনার পছন্দ অনুসারে খুঁজে পেতে পারেন, তবে আপনার সহযোগীরা যদি কার্যকরী অংশগুলির যত্ন না রাখেন তবে এটি কেবল মাতলাব বা আর এর মতো আচরণ করতে পারে। ক্ষতিটি হ'ল ভাষাটি নতুন, এবং এখনও সমস্ত লাইব্রেরি নেই যা প্রতিদিনের ব্যবহারের জন্য প্রয়োজন।

মার্ক, আমাদের ভাড়া কী তা দেখতে আপনার মানদণ্ডে জুলিয়া যুক্ত করতে পছন্দ করবে। আমাদের মেইলিং লিস্টে প্রত্যাশা রাখুন এবং জুলিয়ায় আপনি কী দেখতে চান তা আমাদের জানান যাতে এটি আপনার পক্ষে আরও কার্যকর।


দেখতে সুন্দর! আমি অবশ্যই আমার নিজের কাজের জন্য এটি পরীক্ষা করে দেখব। বর্তমানে আমি তাত্ত্বিক ঘনীভূত বিষয়ে আমার সমস্ত কাজের জন্য অজগর ব্যবহার করি, কেবলমাত্র দ্রুত সি ++ কোড থাকা সময়টি সি ++ এ লেখার
সময়টিকে

9

প্রোগ্রামিং ভাষার গতি, আকার এবং নির্ভরযোগ্যতা আপনার "প্রশ্নে" প্রকাশিত বিভিন্ন উদ্বেগকে জড়িয়ে দেওয়ার সত্যিই ভাল কাজ করে। এটি ৩৩ টি ভাষা জুড়ে একই মানদণ্ডের একগুচ্ছ বাস্তবায়ন গতির এবং কোডবেস আকারের তুলনা করে!

আমি পাইথন প্রেমিক হয়েছি মূলত কারণ প্রোগ্রামে অতিরিক্ত সময়ের চেয়ে অতিরিক্ত কম্পিউটিং সময় পাওয়া অনেক বেশি সাধারণ। আমি আরও কিছু আকর্ষণীয় কিছুতে উত্সর্গ করা যেতে পারে এমন সময়সীমার উত্সর্গের চেয়ে সিপিইউ চক্রগুলি নষ্ট করতে আগ্রহী।

এছাড়াও, জুলিয়ায় +1। আমি মনে করি যখন আমি কিছুটা বেশি স্থিতিশীল এবং ব্যাপকভাবে সমর্থিত হয়ে উঠি যখন আমি যে কাজটি পছন্দ করি তার জন্য স্ট্যান্ডার্ড মডিউলগুলি আবৃত করা হয় তখন আমি এতে স্যুইচ করতে পারি।


4

ওক্যামেলের বৈজ্ঞানিক প্রয়োগগুলির জন্য উদাহরণস্বরূপ দেখুন see

বিজ্ঞানের লিস্পের জন্য উদাহরণস্বরূপ দেখুন

আমি নিশ্চিত যে আরও অনেক উল্লেখ রয়েছে। যাইহোক, আমি কোনও বড় গবেষণা প্রকল্পের উদ্ধৃতি দিতে পারি না যেখানে ওসিএএমএল বা লিস্প উভয় ক্ষেত্রেই কম্পিউটেশনাল কাজ করা হয়েছিল। যে কোনও একটি বেছে নেওয়া মানে আপেক্ষিক বিচ্ছিন্নতায় কাজ করা।

আপনি জুলিয়া সম্পর্কে আগ্রহী হতে পারেন , বর্তমানে বিকাশের অধীনে বৈজ্ঞানিক কম্পিউটিংয়ের জন্য একটি নতুন ভাষা, স্পষ্ট লিস্পের প্রভাব সহ।


1
আমার সম্ভবত এটি আরও পরিষ্কার করা উচিত ছিল যে আমি বেশিরভাগ প্রথম হাতের অভিজ্ঞতায় আগ্রহী। এটি প্রতিফলিত করতে আমি আমার প্রশ্নটি সম্পাদনা করব।
ফাহিম মিঠা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.