pbo enchanced 1 modunu kullandığımda, 10 milyar sayıyı 5.6 ghz de, multithreadle 80 c derecede 10 saniyede yazdırabilirken, bu değer maks 65-70 c dereceyle 8 saniyeye düştü, amd tarafı %15 performans vaat etmiş, fakat performansı zamana vurduğunuzda %20 yi yakalıyoruz. şaka gibi.
boost özelliğini enayi gibi manuel modda kullanıyormuşum da farkında değilmişim ben, aldığım performans düşüşü bu yüzdenmiş, set thermal point 75, 85 gibi envai çeşit mod varmış pbo aktifken!
meğerse bu da güncel hızı sunmayan bir programmış! çoklu iş parçacığıyla 1 saniyede 1 den 50 milyara kadar olan tüm sayıları artışık biçimde saydırdım! 50 tane adam öldü gitti yani! en iyi ihtimali varsayıp 25 diyelim! çift threadde, tek çekirdekte 10 milyar!
#define MAX_COUNT 50000000000LL // long long int türü için LL ekledik #define THREAD_COUNT 24 // 24 çekirdek için iş parçacığı sayısı
// işlem yapılacak fonksiyon
void* count_numbers(void* arg) {
long long start = *((long long*)arg);
long long end = start + (MAX_COUNT / THREAD_COUNT);
for (long long i = start; i < end; i++) {
// Her sayıyı yazdırmıyoruz çünkü çok büyük veri olur, ancak isterseniz yazdırabilirsiniz
// printf("%lld\n", i);
}
return NULL;
}
int main() {
struct timeval start_time, end_time;
double elapsed_time;
pthread_t threads[THREAD_COUNT];
long long start_values[THREAD_COUNT];
// Başlangıç zamanını al
gettimeofday(&start_time, NULL);
// iş parçacıklarını başlat
for (int i = 0; i < THREAD_COUNT; i++) {
start_values[i] = (MAX_COUNT / THREAD_COUNT) * i; // Her iş parçacığına başlangıç noktası
pthread_create(&threads[i], NULL, count_numbers, (void*)&start_values[i]);
}
// iş parçacıklarının bitmesini bekle
for (int i = 0; i < THREAD_COUNT; i++) {
pthread_join(threads[i], NULL);
}
// Bitiş zamanını al
gettimeofday(&end_time, NULL);