используя библиотеку Cilk, установив Intel Parallels X Studio

Я установил Intel Studio, и у меня Visual Studio 2013, я хочу написать программу, которая использует поток. Я хочу скомпилировать это Intel, я сделал эти шаги:

  1. Я создаю пустой проект
  2. Я щелкнул правой кнопкой мыши по исходному коду cpp и выбрал использование компилятора Intel, затем я выбрал использование Intel C ++ для выбранного файла и после выбора Все конфигурации я нажимаю кнопку «ОК».
  3. затем я щелкаю правой кнопкой мыши по проекту и выбираю элемент компилятора intel, используя Intel c ++.
  4. чтобы быть уверенным, что я иду в диспетчер свойств и проверяю диспетчер конфигурации, платформа должна быть X64. Более того, я вижу в C / C ++, Оптимизация [Intel C ++] или вообще [Intel C ++].

Поэтому я думаю, что все настройки выполнены правильно. Но у меня есть эти ошибки, когда я пишу код, используя Cilk / cilk.h

введите описание изображения здесь

и это код

#include <stdio.h>
#include <windows.h>
#include <mmsystem.h>
#include <math.h>
#include <cilk/cilk.h>

using namespace std;

const long int VERYBIG = 100000;
// ***********************************************************************
int main(void)
{
int i;
long int j, k, sum;
double sumx, sumy, total;
DWORD starttime, elapsedtime;
// -----------------------------------------------------------------------
// Output a start message
printf("****************None Parallel Timings for %d iterations\n\n", VERYBIG);
// repeat experiment several times
//  int i = 0;
cilk_for(int i = 0; i < 6; i++)
{
// get
starttime = timeGetTime();
// reset check sum & running total
sum = 0;
total = 0.0;
// Work Loop, do some work by looping VERYBIG times
cilk_for(int j = 0; j<VERYBIG; j++)
{
// increment check sum
sum += 1;
// Calculate first arithmetic series
sumx = 0.0;
for (k = 0; k<j; k++)
sumx = sumx + (double)k;
// Calculate second arithmetic series
sumy = 0.0;
for (k = j; k>0; k--)
sumy = sumy + (double)k;
if (sumx > 0.0)total = total + 1.0 / sqrt(sumx);
if (sumy > 0.0)total = total + 1.0 / sqrt(sumy);
}
// get ending time and use it to determine elapsed time
elapsedtime = timeGetTime() - starttime;
// report elapsed time
printf("Time Elapsed % 10d mSecs Total = %lf Check Sum = %ld\n",
(int)elapsedtime, total, sum);
}
// return integer as required by function header
return 0;
}
// **********************************************************************

Я должен сказать, что я пытаюсь использовать _Cilk_for вместо cilk_for, но проблема не была решена.

Кто-нибудь может сказать мне, в чем проблема?

1

Решение

Для __imp_timeGetTime функция, ссылка из …cilk_for… вам нужно ссылку winmm.lib (см. например https://www.gamedev.net/topic/109957-unresolved-external-symbol-__imp__timegettime0/ или же https://groups.google.com/forum/#!topic/v8-users/WsJYEcp_siY)

1

Другие решения