Multithreading support in CORE

Over the last year, we have worked towards increasing the amount of metadata and full-text content in the aggregation and also on improving the updating frequency of the system. However, increasing the volume of content created also a higher demand on the efficiency of processing, maintaining and exposing the content. In the last three months, we have been optimising the CORE system to improve the parallelisation of processes the CORE system performs. These are namely: downloading and parsing large metadata description files, downloading pdf files from multiple sources, converting pdf files to text, extracting citation information from full-texts, recognising citation targets, discovering semantically related resources, indexing. All these processes have been optimised to allow a relatively even distribution of load across many parallel threads. This task was in our view very important and required significant development effort, but was definitely worth it! A typical CORE repository processing activity will be in our hardware environment distributed among 144 threads (24 processors each with 6 cores). The optimised system enables us to continue adding more repositories into the CORE aggregation and will also helps us to keep content in CORE fresh.