একটি বৃহত, ফোর্টরান ভিত্তিক নম্বর ক্রাঞ্চিং কোডবেস কীভাবে আধুনিকীকরণ করা যায়?


21

একাডেমিয়ার এক বন্ধু আমাকে পরামর্শ চেয়েছিলেন (আমি সি # ব্যবসায়িক অ্যাপ্লিকেশন বিকাশকারী)।

তাঁর একটি উত্তরাধিকার কোডবেস রয়েছে যা তিনি চিকিত্সা ইমেজিং ক্ষেত্রে ফোর্ট্রানে লিখেছিলেন। এটি ভেক্টরগুলি ব্যবহার করে বিপুল পরিমাণ সংখ্যক ক্রাঞ্চিং করে। তিনি একটি ক্লাস্টার (30ish কোর) ব্যবহার করেন এবং এখন এটিতে 500ish GPUS নিয়ে একটি একক ওয়ার্কস্টেশনের দিকে এগিয়ে গিয়েছেন।

যাইহোক কোথায় কোডবেস সঙ্গে যেতে হবে তাই:

  • অন্যান্য ব্যক্তিরা এটি পরবর্তী 10 বছরের চক্র ধরে রাখতে পারে
  • সফটওয়্যারটি টুইট করতে দ্রুত পান
  • Recompiles ছাড়াই বিভিন্ন অবকাঠামোতে চলতে পারে

আমার কাছ থেকে কিছু গবেষণা করার পরে (এটি একটি দুর্দান্ত আকর্ষণীয় অঞ্চল) কিছু বিকল্প রয়েছে:

  • এনভিডিয়া থেকে পাইথন এবং সিউডিএ ব্যবহার করুন
  • ক্রিয়ামূলক ভাষায় পুনরায় লিখুন। উদাহরণস্বরূপ, এফ # বা হাস্কেল
  • মেঘ ভিত্তিক যান এবং হাদুপ ও জাভার মতো কিছু ব্যবহার করুন
  • সি

আপনার এই অভিজ্ঞতা কি হয়েছে? আমার বন্ধুটি তার কোডবেসটি আধুনিকীকরণের জন্য কী দেখবে?

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

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

মেডিকেল ইমেজিং এবং সিডুএর জন্য ফোর্টরান র‌্যাপার লিখেছেন এমন একটি লোক দেখুন , আমি কি আইনীভাবে আমার ফোর্টরান 90 র‌্যাপারগুলি এনভিডিয়াসের সিইউএফএফটি লাইব্রেরিতে (সিইউডিএ এসডিকে থেকে) প্রকাশ করতে পারি?


আমি তালিকায় ওপেনসিএল যুক্ত করব।
জেরি কফিন 21

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

"Recompiles ছাড়া বিভিন্ন অবকাঠামোতে চালানো যেতে পারে" এর অধীনে আপনার বিশেষত অর্থ কী?
রুক করুন

হাই @ আইডিগাস - সুনির্দিষ্ট সম্পর্কে খুব বেশি নিশ্চিত নই। তবে মূলত গল্পটি গিয়েছিল যে কোডবেসটিকে অন্য ক্লাস্টার / মেশিনে নিয়ে যাওয়ার সময় গ্রন্থাগারগুলির সমস্ত সঠিক সংস্করণ একসাথে সংকলনের জন্য পাওয়া দুঃস্বপ্ন হয়ে উঠছিল। আমি বিশ্বাস করি কোডবেসটি এফ from F থেকে এফ 90৯ বা যে কোনও ক্ষেত্রে নেওয়া হয়েছে .. মূলত আমি তাকে সঠিক লোকের সাথে আর্কিটেকচার / ভাষা পরিবর্তন করতে হবে কিনা সে সম্পর্কে স্মার্ট সিদ্ধান্ত নিতে সাহায্য করার চেষ্টা করছি। আমি এমন একটি ব্যাকগ্রাউন্ড থেকে এসেছি যেখানে গ্রাহকরা অতিরিক্ত কোডিং সময়ের কোনও দিন পছন্দ করেন না, তাই সবচেয়ে দ্রুততম কোডটি দ্রুততম লেখায় আমাকে সাহায্য করতে আমি যা কিছু করতে পারি তা আদর্শ :-)
ডেভ ম্যাটার

@ ডেভমাটার - আমার উত্তর দেখুন (এখানে এই বাক্সে ফিট করে না)। আমি এখন ঘুমাতে যাচ্ছি, সুতরাং ভবিষ্যতের উত্তরগুলি কিছুটা ধীর হতে পারে :)
রুক

উত্তর:


24

আপনি যে দাবিগুলি রেখেছেন প্রকৃতপক্ষে ফোর্টরানকে তালিকার শীর্ষে রাখবে, এই জাতীয় সমস্যার জন্য:

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

এটি এমন একটি ভাষা যা খুব সহজেই বাছাই করা সহজ। আমি একমত নই যে গবেষণা সহায়কগুলিকে দ্রুত গতিতে আনতে সময় লাগে। এটিতে আমার প্রথম পাঠ্যপুস্তকের কাছে স্প্রে ছাপানো পাঠ্যের 30 (?) পৃষ্ঠাগুলি ছাড়া আর কিছুই ছিল না। এটি এমন একটি ভাষা যার মধ্যে 10 টি কীওয়ার্ড শেখার পরে, মাঝারি আকারের প্রোগ্রামগুলি লিখতে পারেন। আমি বলতে সাহস করব যে ডিফল্ট ওয়ার্ড পাঠ্যে লিখিত সেই 30 পৃষ্ঠাগুলি বেশিরভাগ ব্যবহারকারীর জন্য আরও "বিস্তৃত" ফোর্টরান ম্যানুয়াল "তৈরি করবে।

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

এগুলি ছাড়াও সমান্তরাল প্রোগ্রামগুলির জন্য আপনার কাছে ওপেনএমপি, এমপিআই এবং এখন আসন্ন (এবং দীর্ঘ প্রতীক্ষিত) সহ-অ্যারে রয়েছে, যা ইন্টেলের সংকলক সম্প্রতি প্রয়োগ করেছেনশব্দগুলি নষ্ট না করার জন্য, ফোর্টরানের সমান্তরাল প্রোগ্রামগুলির জন্য "লাইব্রেরি" এর খুব সূক্ষ্ম গামা রয়েছে।

শিল্পের স্ট্যান্ডার্ড সংখ্যাসূচক গ্রন্থাগারগুলি এর জন্য সর্বাগ্রে বিকশিত হয়, অন্যান্য ভাষাগুলি ফাংশন / রুটিন পোর্টফোলিওতে কমবেশি অনুসরণ করে।

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

PS যতদূর "ভবিষ্যতের রক্ষণাবেক্ষণ" যায়, কেবল একটি আনগডোট যা আমি মাঝে মাঝে উল্লেখ করতে চাই। আমার থিসিসটি লেখার সময়, আমি আমার পরামর্শদাতার কিছু কোড পুনরায় ব্যবহার করেছি, লেখার সময় থেকে 35 বছর আগে লেখা হয়েছিল। এটি কেবল একটি ত্রুটি দিয়ে সংকলিত হয়েছে; কপির পেস্ট ভুলের কারণে শেষে একটি বিবৃতি অনুপস্থিত :)


@ ডেভমেটার (মন্তব্যের জবাব) - আমি নীচে একটি মন্তব্য করতে যাচ্ছি যা কিছুটা অসম্পূর্ণ হতে পারে তবে দয়া করে এটিকে ভুল উপায়ে গ্রহণ করবেন না, কারণ এটি ন্যায্য উদ্দেশ্য in

আমার কাছে মনে হচ্ছে আপনি এই "সমস্যা "টিকে ভুল উপায়ে মোকাবেলা করছেন। আমি কয়েকটি সংক্ষিপ্ত পয়েন্টগুলিতে কী বোঝাতে চাইছি (কারণ এটি এখানে খুব দেরী হয়ে গেছে, এবং আমার পাঠ্যযোগ্য (বোধগম্যতা বোধ করি) বাক্যগুলি তৈরি করার দক্ষতা আমাকে 10p.m. পরে ছেড়ে যায়)

ক) আপনি উল্লেখ করেছেন যে আপনি অতিরিক্ত কোডিং সময়কে হ্রাস করার চেষ্টা করছেন, তবুও আপনি একটি বর্ণা choice্য পছন্দ থেকে ভাষার সংখ্যার জন্য বিশেষ সংখ্যার জন্য একটি ভাষা পুনর্লিখন বিবেচনা করছেন, যদি আপনি আমার অভিব্যক্তি ক্ষমা করেন

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

খ) এ জাতীয় পুনর্লিখনের জন্য কত খরচ হবে? লোক / ঘন্টা।

গ) লাইব্রেরিগুলির সংকলনের জন্য সঠিক সংস্করণগুলি ...- যে কোনও ভাষায় সমস্যা, যা এড়ানো যায় না, তবে আপনি এটি দেখুন look

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

উঘ, আমি যদি অন্য কিছু মনে করি তবে আগামীকাল এটি যুক্ত করব। কিছুটা ঘুমোতে হবে ...


@ আইডিগাস .. আবার অনেক প্রশংসা। সম্পূর্ণরূপে একমত যে একবার কিছু কাজ করা হয়, তারপরে এর অর্থ অনেক বেশি। আমাদের শিল্প মোট রাইটারিটগুলি ভয়াবহভাবে ভুল হয়ে গেছে (নেটস্কেপ)!
ডেভ মাটার

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

2
একমত হতে হবে। আপনি কী করছেন (এবং বেশিরভাগ ইঞ্জিনিয়াররা করেন) এর পিছনে গণিতটি যদি আপনি বুঝতে পারেন তবে এটিকে ফরটারনে প্রয়োগ করা শিখনের বক্ররেখা নয়। একবার এটি তৈরি হয়ে গেলে প্রয়োজনীয়তাগুলি ব্যবসায় বা সামাজিক অ্যাপ্লিকেশনগুলির মতো কদাচিৎ পরিবর্তিত হয়।
JeffO

বাহ, আমি জানতাম না ফরটারের জন্য এত ভালবাসা ছিল। আমার F77 তে 5 বছরের জন্য বিকাশ করতে হয়েছিল এবং আমি এই জিনিসটি দাঁড়াতে পারি না।
dodgy_coder

2
@dodgy_coder। শুনে ভাল লাগল আপনি ফোরট্রান + .নেটের নব্বইয়ের দশকে বিকাশ করেছেন। .NET এর প্রথম বিটা 2000 এ

10

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

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


ফরটারনে নতুন প্রকল্পগুলিও আজকাল শুরু হয়েছে তা উল্লেখ করার দরকার নেই।
রুক

হ্যাঁ, ফোর্টরানের কোনও সিওবিওএল নয়, এটি কেবল সমর্থিত নয় কারণ এটি 30 বছর আগে লোকেরা শিখেছে (যদিও আইএমও এটি এর অংশ)। সংখ্যা ক্রাঞ্চিং আমার ফোর্ট নয় যদিও আরও ভাল থাকলে আমি অবশ্যই এটি জানি না।
বেন ব্রোকা

1
নম্বর ক্র্যাঞ্চিং এবং সম্পর্কিত অপ্টিমাইজেশনের ক্ষেত্রে ফোর্টরান ভাষার এখনও দশ বছরের সীসা রয়েছে। এটি খুব শীঘ্রই মারা যাবে না।
মার্টিন ইয়র্ক

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

1
আপনি কি সত্যিই এমন কাউকে চান যাঁর ফোর্টরানে আপনার সংখ্যা ক্র্যাঞ্চিং কোডটি স্পর্শ করা মোটেই আগ্রহী নয়? একটি বড় সমস্যা নিশ্চিত করছে যে পুনর্লিখনের পরে ফলাফলটি এখনও সঠিক।
পিটার স্মিথ

4

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

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

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

আপনি যদি আমাদের পদ্ধতির এবং ফলাফলগুলির আরও বিশদ দেখতে চান তবে আমাদের কাছে আরএক্সিবের একটি কাগজ রয়েছে

স্ব-বিজ্ঞাপনের জন্য দুঃখিত, তবে মনে হয়েছিল যে আমার ব্যক্তিগত অভিজ্ঞতা এখানে প্রাসঙ্গিক হবে। আপনি যদি আরও অনেকগুলি ধারণা শুনতে চান তবে আপনি এটি নতুন http://scicomp.stackexchange.com এও পোস্ট করতে পারেন


1

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

কেবলমাত্র ফোর্টরান সংখ্যাসূচক কোডের জন্য সেরা ভাষা এর অর্থ এই নয় যে আমাদের কাছে একটি অগোছালো, জটিল কোডের এই বিশাল ব্যাগেজটি আমাদের সাথে সর্বদা বহন করতে হবে (হ্যাঁ একটি ফোর্টরান কোডটি অগোছালো হতে বাধ্য, বিশেষত ফোর্টরান-77 that যা একটি এমন একটি ভাষা যা সফ্টওয়্যার-ইঞ্জিনিয়ারিংয়ের জন্য আক্ষরিক অর্থেই বিবেচনা করে না, যখন এটি একটি নির্দিষ্ট কেওএলকে অতিক্রম করে)। যারা নম্বর-ক্রাঞ্চিংয়ের জন্য ফোর্টরানকে সমর্থন করেন তারা সাধারণ পর্যবেক্ষণকে ভুলে যান যে আপনি যখন এই জাতীয় কোডগুলির পারফরম্যান্স বিশ্লেষণ করেন, তখন কোডটি কেবল 5% বা 10% হয় যা পারফরম্যান্স নিবিড় হয় এবং বাকী 90% + ফোর্টরান একটি অকেজো ওভারহেড, কেবল একজন "সফটওয়্যার ইঞ্জিনিয়ার" হিসাবে আপনার জীবনকে বেঁচে থাকার জন্য।

আপনি যখন ফোর্টরান-77 from থেকে ফোর্টরান -৯০ এ চলে যাচ্ছেন, আপনি মূলত কিছুটা ভাষা বৈশিষ্ট্য সহ বাণিজ্য-অফ পারফরম্যান্সে ইচ্ছুক। ফোর্টরান মূলত ফোর্টরান -77 এর কারণে একটি শক্তিশালী নম্বর ক্রাঙ্কার। আপনি বলতে পারেন ফোর্টরান -৯০ তত দ্রুত, তবে ফোর্টরান -৯০ / ২০০৩ বৈশিষ্ট্যগুলি যুক্ত করার সময় এবং যেভাবে অপ্টিমাইজেশন ইস্যু সংকলক লেখকদের মোকাবেলা করতে হয়েছিল এবং সি সংকলক লেখকদের যে বিষয়গুলি করা হয়েছিল সেগুলি থেকে এখনও ফোর্টরান-77 performance পারফরম্যান্স রাখা খুব একটা আলাদা নয় C সহ (এবং ফলস্বরূপ সি খুব দ্রুত হিসাবে বিবেচিত হয়, সি উল্লেখ না করে ইনলাইন-অ্যাসেমব্লিকেও অনুমতি দেয়)। সুতরাং কেন আপনি ফরট্রান -77 কোডের সাথে সি কোড বিট বিট (ফোর্টরান -90 এর পরিবর্তে) যুক্ত করা শুরু করবেন না। আমার কোডটিতে ইতিমধ্যে সি-এর টুকরা রয়েছে এবং ফোর্টরান-77 in এ টুকরো টুকরো রয়েছে এবং এটি পাসিং স্ট্রিং, শূন্য-সূচক / ওয়ান ইনডেক্সিং ইত্যাদির মতো কিছু সমস্যার ক্ষেত্রে দুর্দান্ত কাজ করে তবে আমি সি থেকে যে সুবিধা পাব,

আমি আরও একধাপ এগিয়ে যেতে চাই এমনকি সি (এবং অবশ্যই ফোর্টরান-90/95/2003) খুব নিম্ন-স্তরের যদি আপনি কোনও সংখ্যার ক্রাঞ্চিং কোডটিতে একটি দুর্দান্ত "মানবিক" ইন্টারফেস চান want আমি পাইথন-ফোর্টরান -77 বা পাইথন-সি হাইব্রিডে যাওয়ার কথা ভাবছি। একটি কোড যার 90% কোডটি পাইথন (নম্পি, স্কিপি, প্লটিবিলিটি, এবং সমস্ত মিষ্টি সহ) এবং কেবল পারফরম্যান্স নিবিড় 5% -10% ফোর্টরান -77 বা সি কোড হিসাবে রয়ে যায়।


1
"একটি ফোর্টরান কোড অগোছালো হতে বাধ্য"। কোনও নোংরা কোডার যে কোনও ভাষায় অগোছালো কোড লিখবে এবং কনভার্সটি সত্য। কার্নিঘান এবং প্লুগার দেখিয়েছেন যে কীভাবে পরিষ্কার ফোর্টরান লিখতে হবে বছর আগে

0

আমি বর্তমানে আধুনিক শিল্প পরিবেশে ব্যবহার করার জন্য একটি পুরানো ফরট্রেন 95 কোডবেস আপডেট করার প্রক্রিয়ায় রয়েছি কারণ পূর্ববর্তী সংস্করণটি সর্বশেষতম উইন্ডোজ 2000 মেশিনে চলবে। ফরটারান কোডবেস নিজেই সেচের সিমুলেশনের সাথে জড়িত বিপুল পরিমাণ সংখ্যক ক্রাঞ্চিং সম্পাদন করে।

সুতরাং আমি যা করছি তা আরও আধুনিক ভাষায় ফরট্রানটি পুনরায় লেখার পরিবর্তে সিলভারফ্রস্ট এফটিএন 95 নামে একটি বাণিজ্যিক সংকলক ব্যবহার করে ফোরট্রান কোডবেস একটি। নেট 4.0 লাইব্রেরিতে সংকলন করতে যা আমি ডাব্লুপিএফ অ্যাপ্লিকেশনটির ব্যাকএন্ড হিসাবে ব্যবহার করছি । এইভাবে আমি সিমুলেশন কোডে জ্ঞাত বাগগুলি আনার ঝুঁকিটি চালাচ্ছি না এবং কোডবেজটিকে। নেট 4.0 ফ্রেমওয়ার্কে সরিয়ে আমি আধুনিকায়ন করছি যাতে এটি আরও আধুনিক পরিবেশে চলে।

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

আশা করি আমার কাফফারাটি সাহায্য করবে, ধন্যবাদ অ্যালেক্স।


0

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

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

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


0

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

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