updated release.txt, rxr optimization (no file buffering, write to every page at memory allocation, fix to fifo depth

This commit is contained in:
2020-03-10 10:59:30 +01:00
parent d112956f79
commit 93f8e8ecb3
6 changed files with 57 additions and 31 deletions

View File

@ -188,10 +188,9 @@ class BinaryFileStatic {
* @param fd file pointer
* @param owenable overwrite enable
* @param fname complete file name
* @param filebuffersize file buffer size
* @returns 0 for success and 1 for fail
*/
static int CreateDataFile(FILE*& fd, bool owenable, std::string fname, size_t filebuffersize)
static int CreateDataFile(FILE*& fd, bool owenable, std::string fname)
{
if(!owenable){
if (NULL == (fd = fopen((const char *) fname.c_str(), "wx"))){
@ -204,8 +203,8 @@ class BinaryFileStatic {
fd = 0;
return 1;
}
//setting file buffer size to 16mb
setvbuf(fd,NULL,_IOFBF,filebuffersize);
//setting to no file buffering
setvbuf(fd,NULL, _IONBF, 0);
return 0;
}

View File

@ -17,9 +17,6 @@
#define STATISTIC_FRAMENUMBER_INFINITE 20000
//binary
#define FILE_BUFFER_SIZE (16*1024*1024) //16mb
//fifo
#define FIFO_HEADER_NUMBYTES 8

View File

@ -49,7 +49,7 @@ int BinaryFile::CreateFile(uint64_t fnum) {
currentFileName = BinaryFileStatic::CreateFileName(filePath, fileNamePrefix, *fileIndex,
(*numImages > 1), fnum, *detIndex, *numUnitsPerDetector, index);
if (BinaryFileStatic::CreateDataFile(filefd, *overWriteEnable, currentFileName, FILE_BUFFER_SIZE) == FAIL)
if (BinaryFileStatic::CreateDataFile(filefd, *overWriteEnable, currentFileName) == FAIL)
return FAIL;
if(!(*silentMode)) {

View File

@ -53,6 +53,10 @@ int Fifo::CreateFifos(uint32_t fifoItemSize) {
return FAIL;
}
memset(memory, 0, mem_len);
int pagesize = getpagesize();
for (size_t i = 0; i < mem_len; i += pagesize) {
strcpy(memory + i, "memory");
}
FILE_LOG(logDEBUG) << "Memory Allocated " << index << ": " << (double)mem_len/(double)(1024 * 1024) << " MB";
{ //push free addresses into fifoFree fifo

View File

@ -836,7 +836,9 @@ int UDPStandardImplementation::SetupFifoStructure() {
if(dataStreamer.size())dataStreamer[i]->SetFifo(fifo[i]);
}
FILE_LOG(logINFO) << "Memory Allocated Per Fifo: " << (double)( ((generalData->imageSize) * numberofJobs + (generalData->fifoBufferHeaderSize)) * fifoDepth)/ (double)(1024 * 1024) << " MB" ;
FILE_LOG(logINFO) << "Memory Allocated Per Fifo: " << (double)( ((size_t)(generalData->imageSize) * numberofJobs +
(size_t)(generalData->fifoBufferHeaderSize)) * (size_t)fifoDepth)/
(double)(1024 * 1024) << " MB" ;
FILE_LOG(logINFO) << numThreads << " Fifo structure(s) reconstructed";
return OK;
}