- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Is subject possible. I got the following error trying to compile it:
../../inspector/SecurityWrapper.cpp(229): (col. 17) remark: TASK CONSTRUCT WAS PARALLELIZED.
../../inspector/SecurityWrapper.cpp(221): (col. 13) remark: TASKQ CONSTRUCT WAS PARALLELIZED.
../../inspector/SecurityWrapper.cpp(218): (col. 1) remark: OpenMP DEFINED REGION WAS PARALLELIZED.
(0): internal error: backend signals
compilation aborted for ../../inspector/SecurityWrapper.cpp (code 4)
The code I tried to compile:
...
#pragma omp parallel shared(it)
{
#pragma intel omp taskq reduction(+:count) //shared(it)
{
#ifdef _OPENMP
printf( " OMP is using %d thread(s) ", omp_get_num_threads());
#endif
for(it = _engines.begin(); it != _engines.end(); ++it)
{
#pragma intel omp task captureprivate(it)
{
uint nsize = 0;
char *ndata = 0;
///*
#ifdef _OPENMP
printf( " %d thread running ", omp_get_thread_num());
#endif
//*/
InspectionEngine *engine = (InspectionEngine *)*it;
if(mask & engine->_mask || (engine->_mask == STRUCTURED_ENGINE_MASK && _enable_ccn_pattern))
{
engine->setRawSrc((char*)src,size);
ndata = (char*)_normalizer.getNormalized(engine->getType(), nsize);
if (SecurityWrapperLayer::_normalized_log)
SecurityWrapperLayer::_normalized_log->write((char*)ndata,nsize,getStreamId(),engine->getType());
count += engine->process(pid, ndata, nsize, eof);
}
}//omp task
}//for loop
}//tasq
#pragma omp single nowait
{
#ifdef _OPENMP
printf( " %d thread checks DB config ", omp_get_thread_num());
#endif
checkDBConfig();
}//single
}//parallel
return count;
Whereas #pragma intel omp parrallel itself works well, any combination of omp pragmas and tasq inside a parallel block doesn't compile.
Any workaround? All I want is just to update DB configuration in parallel with tasq processing.
../../inspector/SecurityWrapper.cpp(229): (col. 17) remark: TASK CONSTRUCT WAS PARALLELIZED.
../../inspector/SecurityWrapper.cpp(221): (col. 13) remark: TASKQ CONSTRUCT WAS PARALLELIZED.
../../inspector/SecurityWrapper.cpp(218): (col. 1) remark: OpenMP DEFINED REGION WAS PARALLELIZED.
(0): internal error: backend signals
compilation aborted for ../../inspector/SecurityWrapper.cpp (code 4)
The code I tried to compile:
...
#pragma omp parallel shared(it)
{
#pragma intel omp taskq reduction(+:count) //shared(it)
{
#ifdef _OPENMP
printf( " OMP is using %d thread(s) ", omp_get_num_threads());
#endif
for(it = _engines.begin(); it != _engines.end(); ++it)
{
#pragma intel omp task captureprivate(it)
{
uint nsize = 0;
char *ndata = 0;
///*
#ifdef _OPENMP
printf( " %d thread running ", omp_get_thread_num());
#endif
//*/
InspectionEngine *engine = (InspectionEngine *)*it;
if(mask & engine->_mask || (engine->_mask == STRUCTURED_ENGINE_MASK && _enable_ccn_pattern))
{
engine->setRawSrc((char*)src,size);
ndata = (char*)_normalizer.getNormalized(engine->getType(), nsize);
if (SecurityWrapperLayer::_normalized_log)
SecurityWrapperLayer::_normalized_log->write((char*)ndata,nsize,getStreamId(),engine->getType());
count += engine->process(pid, ndata, nsize, eof);
}
}//omp task
}//for loop
}//tasq
#pragma omp single nowait
{
#ifdef _OPENMP
printf( " %d thread checks DB config ", omp_get_thread_num());
#endif
checkDBConfig();
}//single
}//parallel
return count;
Whereas #pragma intel omp parrallel itself works well, any combination of omp pragmas and tasq inside a parallel block doesn't compile.
Any workaround? All I want is just to update DB configuration in parallel with tasq processing.
Link Copied
0 Replies
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page