Avatar ·

C++ में प्रोसेसर कोर की संख्या प्रोग्रामेटिक रूप से कैसे निर्धारित करें (क्रॉस-प्लेटफ़ॉर्म समाधान)?

सभी को नमस्ते! मैं इमेज प्रोसेसिंग के लिए C++ में एक मल्टीथ्रेडेड एप्लिकेशन लिख रहा हूँ। मैं चाहता हूँ कि प्रोग्राम उपयोगकर्ता के हार्डवेयर के आधार पर स्वचालित रूप से थ्रेड्स की इष्टतम संख्या निर्धारित करे। समस्या यह है कि इसे Windows और Linux दोनों पर काम करना होगा।\n\nमैंने मैक्रोज़ और सिस्टम API कॉल का उपयोग करने की कोशिश की, लेकिन यह एक तरह का चिड़ियाघर बन गया:\n\n```cpp\n#ifdef _WIN32\n SYSTEM_INFO sysinfo;\n GetSystemInfo(&sysinfo);\n int cores = sysinfo.dwNumberOfProcessors;\n#elif __linux__\n int cores = sysconf(_SC_NPROCESSORS_ONLN);\n#else\n int cores = 1; // fallback\n#endif\n```\n\nयह काम करता है, लेकिन कोड बहुत बुरा दिखता है। साथ ही, मैंने पढ़ा है कि Hyper-Threading वाले कुछ प्रोसेसर पर `dwNumberOfProcessors` लॉजिकल कोर लौटाता है, न कि फिजिकल कोर। और मुझे विशेष रूप से फिजिकल कोर की संख्या चाहिए, ताकि