ঝাঁকুনি ব্যবহার করে কীভাবে ওপেনএমপি প্রোগ্রাম সংকলন করবেন?


9

আমার জিসিসি ভাল সংকলন করেছে, তবে ঝনঝনানি নিম্নলিখিত বার্তায় ব্যর্থ হয়:

clang -fopenmp=libomp -o main main.c
main.c:5:10: fatal error: 'omp.h' file not found

আমি libomp5প্যাকেজ ইনস্টল করেছি এবং পতাকাও এতে পরিবর্তন করেছি -fopenmp=libomp5, যদিও এটির কোনওটিই সহায়তা করেনি:

clang -fopenmp=libomp5 -o main main.c
clang: error: unsupported argument 'libomp5' to option 'fopenmp='
clang: error: unsupported argument 'libomp5' to option 'fopenmp='

এই সুপারিশ কার্যকর হয়নি।

প্রয়োজনীয় 16.04 নির্দিষ্ট প্যাকেজ ইনস্টল করার এবং সংশ্লিষ্ট পতাকাগুলি প্রেরণের বিষয়ে ইঙ্গিতগুলির জন্য কৃতজ্ঞ হবে।


আপনি ঝাঁকুনির কোন সংস্করণ ব্যবহার করছেন? আমার একই সমস্যা বিটিডাব্লুতে ঝাঁকুনি -৩.৮ এবং উবুন্টু ১10.১০-এ ঝনঝন -৩.৯ রয়েছে।
জেড বোসন

1
sudo apt libomp-dev ইনস্টল করুন
জেড বোসন

অবশেষে, আমি উবুন্টুতে ক্ল্যাং সহ ওপেনএমপি ব্যবহার করতে পারি! আমি এটি দীর্ঘকাল চেয়েছিলাম!
জেড বোসন

উত্তর:


16

আমারও একই সমস্যা ছিল।

sudo apt install libomp-dev

এটি উবুন্টু 16.10 দিয়ে স্থির করে

//test.c
#include "omp.h"
#include <stdio.h>

int main(void) {
  #pragma omp parallel
  printf("thread %d\n", omp_get_thread_num());
}

তারপর

clang test.c -fopenmp
./a.out
thread 0
thread 5
thread 2
thread 1
thread 7
thread 3
thread 4
thread 6

এছাড়াও

clant-3.9 test.c -fopenmp

কাজ করে।


জিসিসি এবং ক্ল্যাং বিভিন্ন ওপেনএমপি রানটাইম লাইব্রেরি ব্যবহার করে: libgomp এবং libomp সম্মানজনকভাবে।

ক্ল্যাংয়ের রানটাইমটি হল এলএলভিএম ওপেনএমপি রানটাইম যা ঘুরেফিরে ইনটেল ওপেনএমপি রানটাইম (যা ওপেন সোর্স) এর উপর ভিত্তি করে। https://www.openmprtl.org/

আমার সিস্টেমে জিসিসি ইনস্টল omp.hকরা আছে

/usr/lib/gcc/x86_64-linux-gnu/6/include/omp.h

এবং libomp-devinsalled omp.h

/usr/include/omp.h

এটি বিভিন্ন শিরোনাম ফাইল যা বিভিন্ন ফাংশন সংজ্ঞা অন্তর্ভুক্ত। উদাহরণস্বরূপ উভয় ক্ষেত্রে শিরোনাম ফাইলটি ব্যবহার করা ঠিক হবে omp_get_wtime()তবে সাধারণভাবে আমি মনে করি যে লিঙ্কযুক্ত রানটাইমের সাথে সামঞ্জস্যপূর্ণ শিরোলেখ ফাইলটি ব্যবহার করা ভাল।


1
ভোলা 16.04 এ স্টপ ক্ল্যাংয়ের সাহায্যে কাজ করেছেন।
বুলাত এম।

1
আমি ইনস্টল করা উবুন্টুকে 17.04 এ জেস্ট করেছিলাম যা ডিফাল্ট ৪.০ এ ডিফল্ট। আমি স্টিল্ল্ড ব্যবহার করতে হয়েছিল sudo apt install libomp.dev
জেড বোসন

আপনি যদি দুর্ঘটনাক্রমে কলম্ব 6 থেকে লিবিগম্পটি লিঙ্ক করেন তবে আপনার কোডটি নিঃশব্দে সিরিয়ালায়িত হবে।
অ্যান্ড্রু ওয়াগনার

2

দেখে মনে হচ্ছে আপনার সিস্টেম PATHomp.h ফাইল উপস্থিত নেই । প্রথমে omp.h ফাইলটি সনাক্ত করার চেষ্টা করুন যদি আপনি এটি জানেন না তবে এটি কোথায়:

find / -name 'omp.h' -type f

এবং তারপরে আপনার কোডটি সংকলন করতে এই কমান্ডটি চালান:

clang -o main main.c -I/path/to/omp/folder

এটি সমস্যার সমাধান করে না। এটি এখনও খুঁজে পাচ্ছে না omp.h
জেড বোসন

আপনি কি আপনার সিস্টেমে কোন omp.h খুঁজে পেয়েছেন ? আপনি কি এই প্রশ্নগুলির আউটপুট যুক্ত করতে পারেন?
গাসেম পাহলাওয়ান

*.hশিরোনামের ফাইলগুলি কী, সে কেন সেগুলিকে তার পথে যুক্ত করতে চাইবে? তাদের /usr/includeউদাহরণস্বরূপ হওয়া উচিত ।
রাভেক্সিনা

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