আমি क्रमवारी -u সহ এগ্রিপ দিয়ে কোনও ফাইল থেকে টানা লাইনের একটি সেটকে অনন্য করে দেওয়ার চেষ্টা করছি, তারপরে সেগুলি গণনা করুন। লাইনগুলির প্রায় 10% (বর্ণমালা [এটিসিজি] থেকে সমস্ত 100 টি অক্ষর দীর্ঘ) নকল করা হয়েছে। দুটি ফাইল রয়েছে, প্রতিটি প্রায় 3 টি জিগ, 50% প্রাসঙ্গিক নয়, তাই সম্ভবত 300 মিলিয়ন লাইন।
LC_ALL=C grep -E <files> | sort --parallel=24 -u | wc -m
এলসি_এলএল = সি এর মধ্যে এবং গ্রেটকে ত্বরান্বিত করতে -x ব্যবহারের মধ্যবর্তী স্থানে ধীরতম অংশটি সাজানো। ম্যান পেজগুলি পড়ার ফলে - সমান্তরাল = এন পৌঁছেছিল, কিন্তু পরীক্ষায় একেবারে কোনও উন্নতি হয়নি। শীর্ষের সাথে কিছুটা খনন করে দেখানো হয়েছিল যে - সমান্তরাল = ২৪ এর সাথেও, সাজানোর প্রক্রিয়াটি কেবল একবারে একটি প্রসেসরের উপর চলে।
মোট ৪৪ টি লজিকাল প্রসেসর দিয়ে আমার কাছে 6 টি কোর এবং ২ টি থ্রেড / কোর সহ 4 টি চিপস রয়েছে। Lscpu দেখুন কারণ / proc / cpuinfo খুব দীর্ঘ হবে।
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 48
On-line CPU(s) list: 0-47
Thread(s) per core: 2
Core(s) per socket: 6
Socket(s): 4
NUMA node(s): 8
Vendor ID: AuthenticAMD
CPU family: 21
Model: 1
Stepping: 2
CPU MHz: 1400.000
BogoMIPS: 5199.96
আমি কী মিস করছি? প্রক্রিয়াটি আইও-সীমাবদ্ধ থাকলেও, আমি কি যাইহোক সমান্তরাল প্রক্রিয়াকরণটি দেখতে পাচ্ছি না? বাছাই প্রক্রিয়াটি যে কোনও নির্দিষ্ট সময়ে প্রকৃতপক্ষে প্রসেসরের 99% ব্যবহার করে, সুতরাং এটি ঘটলে আমার সমান্তরালতা দেখতে সক্ষম হওয়া উচিত। স্মৃতি কোনও উদ্বেগের বিষয় নয়, আমার সাথে খেলতে 256 জিবি রয়েছে এবং এর কোনওটিই অন্য কোনও কিছুর দ্বারা ব্যবহৃত হয় না।
আমি কোনও ফাইলে পাইপিং গ্রেপ আবিষ্কার করেছি তারপরে ফাইলটি বাছাই করে পড়া:
LC_ALL=C grep -E <files> > reads.txt ; sort reads.txt -u | wc -m
default, file 1m 50s
--parallel=24, file 1m15s
--parallel=48, file 1m6s
--parallel=1, no file 10m53s
--parallel=2, no file 10m42s
--parallel=4 no file 10m56s
others still running
এই মানদণ্ডগুলি করার ক্ষেত্রে এটি বেশ পরিষ্কার যে পাইপযুক্ত ইনপুট বাছাই করার সময় একেবারেই সমান্তরাল হয় না। কোনও ফাইল পড়ার অনুমতি দেওয়ার সাথে সাথে নির্দেশ অনুযায়ী লোডকে বিভক্ত করে।
uname -a
"3.13.0-46-জেনেরিক # 79-উবুন্টু জন্য SMP" দেয় এবং lsb_release -a
দাবি 14.04.2 কোডনাম বিশ্বাসভাজন, এবং যে GNU coreutils অংশ অনুযায়ী সাজানোর সংস্করণ man sort
।
sort
যা বন্টন হয়? মানকটিsort
সেই বিকল্পটি জানে না।