[[File:alow6.jpg]]
Data The '''data management -- ''' part of the system is critical to the overall structure, since data must be formatted in such a way that the algorithmic functions will be able to operate on them swiftly and efficiently. This section is the part of the system which deals in extracting long csv files and putting the data in models where they can be accessed by the algorithms. Additionally, this part of the system handles the data in such a way that even if parts of data are missing the algorithmic section will still be able to understand.
The '''algorithmic portion ''' of the library supports three different methods of computing. These are in turn batch processing, online processing and distributed processing, which will be discussed later. To optimize performance the intel DAAL library takes and uses algorithms from the Math Kernel Library as well as the Intel Integrated Performance Primitives.
Services --The '''services section''' round out the entire system, providing functions to the others such as memory allocation and error handling. Example service funtions include functions to safely read files: size_t readTextFile(const std::string& datasetFileName, daal::byte** data){ std::ifstream file(datasetFileName.c_str(), std::ios::binary | std::ios::ate); if (!file.is_open()) {fileOpenError(datasetFileName.c_str());} std::streampos end = file.tellg(); file.seekg(0, std::ios::beg); size_t fileSize = static_cast<size_t>(end); (*data) = new daal::byte[fileSize]; checkAllocation(data); if (!file.read((char*)(*data), fileSize)) { delete[] data; fileReadError(); } return fileSize;}
== How to enable ==