জুলিয়া: এটি কীভাবে চলছিল তা নিয়ে স্টক নিচ্ছেন


19

আমি ২০১২ সালের একটি প্রশ্ন জুড়ে এসেছি যার মধ্যে জুলিয়া সম্পর্কে বিভিন্ন ধরণের পরিসংখ্যানমূলক কাজের জন্য আর / পাইথনের বিকল্প হিসাবে খুব ভাল আলোচনা হয়েছিল।

জুলিয়ার প্রতিশ্রুতি সম্পর্কে এখানে 2012 সালের মূল প্রশ্নটি রয়েছে

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

এই প্রশ্নে কারও খুব স্বচ্ছ মন্তব্য ছিল:

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

এটি ছিল ২০১২ সালে। এখন ২০১৫ এবং তিন বছর কেটে গেছে, আমি ভাবছিলাম যে জুলিয়া কীভাবে করেছে লোকেরা?

ভাষাটি এবং সামগ্রিক জুলিয়া বাস্তুতন্ত্রের সাথে কি আরও সমৃদ্ধ অভিজ্ঞতা রয়েছে? আমি জানতে চাই।

বিশেষ করে:

  1. জুলিয়াটি আর-তে শিখতে আপনি স্ট্যাটিস্টিকাল সরঞ্জামগুলির কোনও নতুন ব্যবহারকারীকে পরামর্শ দিতে চান?
  2. কোন ধরণের পরিসংখ্যান ব্যবহারের ক্ষেত্রে আপনি কাউকে জুলিয়া ব্যবহার করার পরামর্শ দিবেন?
  3. যদি কোনও নির্দিষ্ট কাজে আর ধীর গতি হয় তবে জুলিয়া বা পাইথনে স্যুইচ করা কি বোধগম্য?

দ্রষ্টব্য: প্রথম পোস্ট হয়েছে 14 ই জুন 2015।


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

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

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

2
পাইথন এবং আরসিপ্পি সত্যিই গতিশীলভাবে বিকাশ করছে, আর আরও বেশি মনোযোগ লাভ করেছে (আর কনসোর্টিয়াম, মাইক্রোসফ্ট ইত্যাদি) তাই জুলিয়ার পক্ষে ধরা খুব শক্ত বলে মনে হচ্ছে ...
টিম

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

উত্তর:


15

আমি জুলিয়ায় চলে এসেছি, এবং এখানে আমার ব্যবহারিক কারণগুলি রয়েছে:

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

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


আপনার এই উত্তরটি 3 বছরেরও বেশি সময় পেরিয়ে যাওয়ার পরে আপডেট করার বিষয়ে কি আপত্তি আছে?
বেইউসিডনিস্ট

1
আমি এখানে একটি আপডেট প্রতিক্রিয়া জানিয়েছি : scicomp.stackexchange.com/questions/10922/… । সম্ভবত এটি অনুলিপি করা উচিত।
ক্রিস রাকাকাকাস

11

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

সুতরাং কোন ভাষা কোন কাজের জন্য আরও উপযুক্ত? এই সরঞ্জামগুলির সাথে আমার অভিজ্ঞতার ভিত্তিতে আমি তাদের নীচে নীচে রেট দেব:

  • জন্য বিশুদ্ধ পরিসংখ্যানগত গবেষণা যে REPL এবং স্ক্রিপ্ট দুয়েক সঙ্গে সম্পন্ন করা যেতে পারে, আর নিখুঁত পছন্দ বলে মনে হয়। এটি বিশেষত পরিসংখ্যানগুলির জন্য ডিজাইন করা হয়েছে, সরঞ্জামগুলির দীর্ঘতম ইতিহাস এবং সম্ভবত পরিসংখ্যানের গ্রন্থাগারগুলির বৃহত্তম সেট রয়েছে।

  • যদি আপনি চাই প্রতি সংহত পরিসংখ্যান (অথবা, উদাহরণস্বরূপ, মেশিন লার্নিং) মধ্যে উৎপাদন ব্যবস্থা , পাইথন অনেক ভালো বিকল্প মত মনে হয়: একটি সাধারণ প্রোগ্রামিং ভাষা যেমন একটি ভয়ঙ্কর ওয়েব স্ট্যাক আছে, সবচেয়ে API এবং লাইব্রেরি literaly সবকিছু জন্য বাইন্ডিং, থেকে ওয়েব বাতিল করার 3D গেম তৈরি

  • উচ্চ ক্ষমতা সম্পন্ন আলগোরিদিম অনেক লিখতে সহজ জুলিয়া । আপনি শুধুমাত্র মত বিদ্যমান লাইব্রেরি একত্রিত ব্যবহার করতে হবে অথবা যদি SciKit জানুন বা e1071 সি / C দ্বারা সমর্থিত ++ আপনি পাইথন এবং আর কিন্তু ঠিক থাকবে যখন এটি দ্রুত ব্যাকএন্ড নিজেই আসে, জুলিয়া বাস্তব সময় বাঁচায় হয়ে: এটা অনেক দ্রুত তুলনায় এর পাইথন বা আর এবং সি / সি ++ এর অতিরিক্ত জ্ঞানের প্রয়োজন নেই। উদাহরণস্বরূপ, Mocha.jl বিশুদ্ধ জুলিয়া মধ্যে reimplements গভীর ফ্রেমওয়ার্ক শেখার Caffe , মূলত পাইথন একটি মোড়কের সঙ্গে C ++ লিখিত।

  • এছাড়াও ভুলে যাবেন না যে কয়েকটি গ্রন্থাগার কেবল কয়েকটি ভাষায় উপলব্ধ। উদাহরণস্বরূপ, কেবলমাত্র পাইথন কম্পিউটার দৃষ্টিভঙ্গির জন্য পরিপক্ক বাস্তুসংস্থান আছে, কিছু আকৃতি-মিল এবং ট্রান্সফর্মেশন আলগোরিদিম কেবল জুলিয়ায় প্রয়োগ করা হয় এবং আমি আর এর মধ্যে মেডিসিনের পরিসংখ্যানগুলির জন্য কিছু অনন্য প্যাকেজ শুনেছি I've


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

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

3

(খ) কোন ধরণের পরিসংখ্যান ব্যবহারের ক্ষেত্রে আপনি কাউকে জুলিয়া ব্যবহার করার পরামর্শ দিবেন

(গ) আর কোনও নির্দিষ্ট কাজের জন্য ধীর গতিতে থাকলে জুলিয়া বা পাইথনের দিকে যাওয়ার অর্থ কী?

উচ্চ মাত্রিক এবং গণনা নিবিড় সমস্যা।

  • মাল্টিপ্রসেসিং। জুলিয়ার একক নোড সমান্তরাল ক্ষমতা ( @spawnat) পাইথনের তুলনায় অনেক বেশি সুবিধাজনক। পাইথনের উদাহরণস্বরূপ, আপনি আরএপিএলে মাল্টিপ্রসেসিং পুল হ্রাস করতে কোনও মানচিত্র ব্যবহার করতে পারবেন না এবং প্রতিটি ফাংশন যা আপনি সমান্তরাল করতে চান তার জন্য প্রচুর বয়লারপ্লেটের প্রয়োজন requires

  • ক্লাস্টার কম্পিউটিং। জুলিয়ার ClusterManagersপ্যাকেজ আপনাকে প্রায় কয়েকটি কোর সহ কোনও একক মেশিনের মতো করে একটি গণনা ক্লাস্টার ব্যবহার করতে দেয়। [আমি ক্লাস্টার ইউটিলে স্ক্রিপ্ট করার মতো অনুভূতিটি তৈরি করে খেলছি ]

  • ভাগ করা মেমরি. জুলিয়ার SharedArrayঅবজেক্টস পাইথনের সমান ভাগ হওয়া মেমরি অবজেক্টের চেয়ে উচ্চতর।

  • গতি. আমার জুলিয়া বাস্তবায়ন এলোমেলো সংখ্যা জেনারেশনে এবং আর লিনিয়ার বীজগণিতগুলিতে (মাল্টিথ্রেড বিএলএএস সমর্থন করে) আমার আর বাস্তবায়নের চেয়ে দ্রুত (একক মেশিন) is
  • ইনটেরোপিরাবিলিটি। জুলিয়ার PyCallমডিউল আপনাকে মোড়ক ছাড়াই পাইথন ইকোসিস্টেম অ্যাক্সেস দেয় - যেমন আমি এটি ব্যবহার করি pylab। আর এর মতো কিছু আছে তবে আমি এটি চেষ্টা করি নি। ccallসি / ফোর্টরান গ্রন্থাগারগুলির জন্যও রয়েছে ।
  • জিপিইউ। জুলিয়ার সিউডিএ র‌্যাপারগুলি পাইথনের তুলনায় অনেক বেশি উন্নত (আমি যখন পরীক্ষা করে দেখি তখন রুপী প্রায় অস্তিত্বহীন ছিল)। আমি সন্দেহ করি যে জুলিয়ায় পাইথনের চেয়ে বাইরের লাইব্রেরিগুলি কল করা কতটা সহজ তার কারণেই এটি এখনও অবিরত থাকবে।

  • ইকোসিস্টেম। Pkgমডিউল ব্যবহার একটি ব্যাকএন্ড যেমন GitHub। আমি বিশ্বাস করি জুলিয়া মডিউলগুলির দীর্ঘকালীন রক্ষণাবেক্ষণের উপর এটি বড় প্রভাব ফেলবে কারণ এটি প্যাচগুলি সরবরাহ করা বা মালিকদের দায়িত্ব অর্পণ করা আরও সহজবোধ্য।

  • σ

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

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

(ক) আপনি কি নতুন কোনও পরিসংখ্যান সরঞ্জাম ব্যবহারকারী জুলিয়াকে আর-তে শিখতে পরামর্শ দেবেন?

হ্যাঁ, আপনি যদি অংশে (খ) ব্যবহারের ক্ষেত্রে ফিট হন। আপনার ব্যবহারের ক্ষেত্রে যদি প্রচুর ভিন্ন ভিন্ন কাজ জড়িত

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