2013-09-24 5 views
0

я столкнулся с ситуацией, когда простой .net fibonnacci код работает медленнее на определенном наборе серверов, и единственное, что, очевидно, отличается процессор:.Net код медленнее на AMD Opteron CPU, чем Intel Xeon

  • AMD Opteron процессор 6276 - 11 сек
  • Intel Xeon CPU E7 - 4850 - 7 сек

код скомпилирован для x86 и с использованием .NET Framework 4.0.

  • Тактовая частота между ними одинакова, и на самом деле эталонный тест PassMark дает более высокие оценки для AMD.
  • Попробовали это на других серверах AMD в ферме, и время было медленнее.
  • Даже мои локальные машины I7 быстрее запускают код.

код Fibonnacci:

class Program 
{ 
    static void Main(string[] args) 
    { 
     const int ITERATIONS = 10000; 
     const int FIBONACCI = 100000; 

     var watch = new Stopwatch(); 
     watch.Start(); 


     DoFibonnacci(ITERATIONS, FIBONACCI); 

     watch.Stop(); 

     Console.WriteLine("Total fibonacci time: {0}ms", watch.ElapsedMilliseconds); 
     Console.ReadLine(); 
    } 

    private static void DoFibonnacci(int ITERATIONS, int FIBONACCI) 
    { 
     for (int i = 0; i < ITERATIONS; i++) 
     { 
      Fibonacci(FIBONACCI); 
     } 
    } 

    private static int Fibonacci(int x) 
    { 
     var previousValue = -1; 
     var currentResult = 1; 

     for (var i = 0; i <= x; ++i) 
     { 
      var sum = currentResult + previousValue; 
      previousValue = currentResult; 
      currentResult = sum; 
     } 

     return currentResult; 
    } 

} 

Любые идеи о том, что происходит?

+0

Вы посмотрели многоядерный счет PassMark? Это часто обманчиво высоко для новых AMD AMD, с их высоким числом ядер, но относительно слабыми ядрами. – harold

+0

Если я установил близость процессора к одному процессору для процесса, я действительно получаю 7 секунд, что интересно. – Rubans

+0

Хорошо, это начинает странно .. – harold

ответ

0

Это нормально - разные модели ЦП могут иметь разные архитектуры и иметь разную производительность для конкретной задачи на той же частоте. Баланс, на который вы ссылаетесь, состоит из множества различных задач вычисления и, вероятно, не имеет отношения к вашей конкретной задаче.

+0

Это то, что я думал поначалу, но тогда определенный код, который я запускаю, также на 3-4 секунды медленнее, что кажется узким местом, и результаты кажутся относительно простого теста fibonnacci выше. – Rubans

+0

@Rubans: Это означает, что на ваш конкретный код влияет разность архитектуры так же, как и ваш тестовый код. – sharptooth

+0

Вот что я получаю, что интересно. – Rubans

Смежные вопросы