কণা সিমুলেশন যেমন গতিশীল সিস্টেমের জন্য কি হাস্কেল / ক্লোজার আসলেই অসমর্থিত?


9

পূর্ববর্তী প্রশ্নগুলিতে আমাকে বলা হয়েছে যে ফাংশনাল প্রোগ্রামিং ভাষাগুলি গতিশীল সিস্টেমে যেমন পদার্থবিজ্ঞানের ইঞ্জিনের জন্য অনুপযুক্ত, মূলত কারণ অবজেক্টগুলিকে পরিবর্তন করা ব্যয়বহুল। এই বিবৃতিটি কতটা বাস্তবসম্মত এবং কেন?


4
আপনি github.com/linneman/particles-clj আকর্ষণীয় খুঁজে পেতে পারেন । Due to the functional programming style the computational load will be distributed over the available CPU cores which can dramatically increase processing speed in some cases

2
কে আপনাকে বলেছিল তারা অনুপযুক্ত ছিল? উত্তর / মন্তব্য লিঙ্ক?
Andres F.

7
@ ডক্কাট: আমি সন্দেহবাদী যে সেখানকার মন্তব্যকারী খুব কার্যনির্বাহী হওয়ার জন্য, কার্যকরী প্রোগ্রামিং সম্পর্কে অনেক কিছু জানেন। আমি এটি একটি বড় শস্য লবণের সাথে নেব।
সিএ ম্যাকক্যান

6
তদতিরিক্ত, আমি যে উত্তরটি "খাঁটি কার্যকরী পদ্ধতির সাথে গেমগুলির জন্য উপযুক্ত তা ঠিক নয় ..." দিয়ে শুরু হওয়া উত্তরটিকেও এড়িয়ে যাব যদি না লেখক প্রমাণিত না হন যে তিনি আসলে কার্যকরী প্রোগ্রাম লেখার চেষ্টা করেছেন না। অন্যথায়, তিনি সমস্যাগুলি হতে পারে বলে তিনি কী ভাবেন তা কেবল অনুমান করছেন
Andres F.

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

উত্তর:


10

হাস্কেল এবং ক্লোজুর উভয়ই সত্যিকারের পরিবর্তনকে মঞ্জুরি দেয় তাই এটি শুরু করার জন্য কোনও অ-ইস্যু।

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

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

এটি বলেছিল, ভারী সংখ্যা-ক্রাঞ্চিং JVM এর শক্তিতে খেলবে না। এই ধরণের প্রোগ্রামটি কেন ফোর্ট্রান এখনও রয়েছে।


1
একটি নোট মূল্য: GHC এর আসন্ন 8.0 সংস্করণ মডিউল প্রতি কঠোর মূল্যায়ন মোড সমর্থন করবে।
এরিক কাপলুন

8

আমি ক্লোজারের পক্ষে কথা বলতে পারি না, তবে আমি বলতে পারি হাস্কেলের কাছে প্রচুর উচ্চ সুরযুক্ত আইও প্যাকেজ রয়েছে যা আপনার পছন্দসই রূপান্তরকে অনুমতি দেবে।

এখানে আমি একটি প্রশ্নের উত্তর লিখেছি যেখানে কেউ 3 অতি সাধারণ বিষয়গুলি সম্পর্কে বিস্তারিত বর্ণনা করে এবং তাদের কার্য সম্পাদন সম্পর্কে শ্রদ্ধা জানায়: /programming/15439966/when-why-use-an-mvar-over-a-tvar/15440286 # 15440286

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

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

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

আপনার বর্ণনার মতো সিস্টেমটির জন্য সন্ধান করার মতো আরও একটি মোনাদ হ'ল এসটি মোনাদ যা বিশেষত খুব ছোট আইও কলগুলি দুর্দান্ত পারফরম্যান্স দেওয়ার মাধ্যমে করা ধ্বংসাত্মক আপডেটের জন্য।

দুঃখিত, আমি সত্যিই ক্লোজারের সাথে কথা বলতে পারছি না, আশা করি অন্য কেউ সেখানে বিশদ দিতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.