পাইথনের সাথে আধুনিক ফোর্টরান কোড মোড়ানোর জন্য আমার কোন প্যাকেজটি ব্যবহার করা উচিত?


27

আমি জানি এবং আমি কিছু পুরানো ফোর্টরান code 77 কোড মোড়ানোর জন্য f2py2e ব্যবহার করেছি , তবে আমার বোধগম্যতা এটি নতুন ফোর্টরান 95 কোডের সাথে কাজ করে না। আমার কী ব্যবহার করা উচিত তা নিয়ে গবেষণা করেছি এবং fwrap এবং G3 f2py জুড়ে এসেছি, যার মধ্যে উভয়ই তাদের বর্তমান অবস্থার কোনও ব্যাখ্যা দেয় না বা কীভাবে তাদের ব্যবহার করতে হয় (বেসিক ব্যবহারের বাইরে)।

আমি আরও দেখেছি যে f2py সংস্করণে তৃতীয় প্রজন্মের f2py ব্যবহারের বিকল্প রয়েছে তবে এটি অ-কার্যকরী বলে মন্তব্য করা হয়েছে। এটি দেওয়া, আমি জানি না কোন ইউনি প্রকল্পের জন্য আমার কোন প্রকল্পটি ব্যবহার করা উচিত। নতুন কোডের জন্য আমার কোনটি ব্যবহার করা উচিত?

পিএস এটি মূলত /programming/10665717/current-best-method-for-wrapping-modern-fortran-code-with-python এর মতো একই প্রশ্ন , এখানে পরামর্শ দেওয়া আরও ভাল উত্তর দিতে পারে বলে পরামর্শ দেওয়া হয়েছিল ।


2
"মডার্ন
ফোর্টরান

উত্তর:


19

আপনি builtin পাইথন ব্যবহার করতে পারেন ctypes উপর বর্ণনা অনুযায়ী মডিউল fortran90.org । এটি বেশ সোজা এগিয়ে এবং কোনও বাহ্যিক নির্ভরতা প্রয়োজন হয় না। এছাড়াও, এনডিপয়েন্টার আরগ টাইপ সহায়ক খুব কার্যকর very


8
সেটা ঠিক. অথবা Fortran90.org পৃষ্ঠায় বর্ণিত সাইটিপের পরিবর্তে সাইথন ব্যবহার করুন।
ওন্ডিজ এজ্তেক

@ ওন্ডিজেজার্টিক, দুর্দান্ত ওয়েবসাইট! ইন্টারনেটে আধুনিক ফোর্টরানের কয়েকটি মূল্যবান সংস্থান রয়েছে তবে এটি অবশ্যই ফোরট্রানউইকি.আর.এর সাথে আমার অন্যতম প্রিয়
অ্যাস্ট্রোজুয়ানলু

6

আমি ব্যক্তিগতভাবে এটির জন্য f2py ব্যবহার করি। যাইহোক, f2py জন্য আমি যে ফোর্টরান লিখি তা আসলে আধুনিক ফোর্টরান নয়, মডিউলগুলি সহ ফ্রি-ফর্ম F90। আমি ধরে নেওয়া আকার বা কাস্টম ধরণের ব্যবহার করি না। এই পদ্ধতিটি এখনও আমার পক্ষে খুব ভাল কাজ করে।

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


1
২০১৫ আপডেট: বেশ কিছুক্ষণ থেকেই, আমার সমস্ত ফোরট্রান আন্তঃবিত্তি সাইথন এবং আইসো_সি_বাইন্ডিংয়ের মাধ্যমে ঘটে। এটি সিথন / সি-তে আসলে কী প্রয়োজন তা কেবল প্রকাশ করে ফোর্টরান কোডটি নিজেকে আধুনিক রাখার অনুমতি দেয়।
অ্যালেক্স

২০১ update আপডেট: আইসো_সি_বাইন্ডিং বিকল্পটি এখন সহজ cythonকমান্ডটি ব্যবহার করে একটি .পিএক্স ফাইল সংকলন করার চেয়ে সহজ হয়ে উঠছে এবং আমার ফোর্টারান কোড বা পাইথন কোডটি পরিবর্তন করে এবং দ্রুত সবকিছু কার্যকর করার জন্য ওভারল্যাপ হ্রাস করে।
cbcoutinho

5

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


সুতরাং কোডের ধীর বিটগুলির জন্য ফোর্টরান ব্যবহারের চেয়ে সাইথন ব্যবহার করবেন?
জেমস টোকনেল 26'12

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

3

f90wrap f2py এর উপরে নির্মিত এবং স্বয়ংক্রিয়ভাবে ফোর্ত্রান কোড বেসের জন্য পাইথন মোড়কে উত্পন্ন করে, উত্পন্ন ধরণের অ্যাক্সেস সহ। সাধারণ উদাহরণগুলির একটি সেট দেখায় যে এটি কীভাবে কাজ করে।


2

আপনি অর্ধেক যেতে এখানে ফোর্ট র্যাপ ব্যবহার করতে পারেন । এটি আপনার ফোর্টরান কোডটিতে একটি সি ++ ইন্টারফেস তৈরি করবে, যা পাইথন ইন্টারফেস পেতে এসডাব্লুআইজি দিয়ে মোড়ানো হতে পারে । আমরা ফোর্টরান কোডের কিছুটা বড় বেসে এটি করি এবং এটি বেশ ভালভাবে কাজ করে (বাস্তবে, ফোর্ট ওয়ার্যাপটি আমাদের দলের সদস্য দ্বারা এই সঠিক উদ্দেশ্যে তৈরি করা হয়েছিল)।


1

fwrapবিশেষত Fortran90 / 95 লক্ষ্যবস্তু এবং একই সফ্টওয়্যার স্ট্যাক কিছু ব্যবহার করে f2py


3
এই প্রকল্পের গিটহাব রেপোতে সর্বশেষ প্রতিশ্রুতি ছিল 2010 সালের শেষের দিকে।
জেফ অক্সবেরি

1
যদিও আমি সম্মত হই যে এটি নিরুৎসাহিত করছে আমি তার সাথে এখনও শালীন সাফল্য পেয়েছি। বাক্সের বাইরে এটি f2pyF90 এর চেয়ে বেশি কার্যকরী । এটিতে খুব কম প্রবেশের বাধাও রয়েছে। আমি এটি পেয়ে খুশি।
এমরকলিন

1

f2pyআধুনিক ফোর্টরান (অনুমানযুক্ত আকারের অ্যারে এবং তাই) সমর্থন করে, একটি উদাহরণ স্ক্রিপ্ট দেখুন

এছাড়াও, ফোরট্রান কোড সহ পরীক্ষার জন্য আমি সুপারিশ চাই IPython জাদু , যা ইনস্টল করা সহজ এবং খুব সুবিধাজনক (এটা পাশাপাশি f2py উপর নির্ভর) হয়।


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