Global Journal of Computer Science and Technology, C: Software & Data Engineering, Volume 22 Issue 2
computer utilizing all the available resources and meets the requirements listed above. This paper does not focus on developing the deep learning algorithm but rather the deployment of the deep learning algorithm. The algorithm used in this paper achieves an accuracy of 85%, and is described in a previous paper [13]. In Section II, we present the work related to our paper including a literature survey on the relevant parallel frameworks and existing systems that were built to analyze micro-1 circulation images. In Section III, we present the proposed architecture for our package along with two baseline systems that we used to benchmark our proposed architecture against. In Section IV, we present how we implemented our system. In Section V, we present the evaluation criteria that have been used to evaluate our system and benchmark our proposed system against a baseline serial system and a baseline parallel system with the presented criteria and discuss our results. In Section VI, we present our conclusion. II. R elated W ork This section presents the literature review on current parallel frameworks and existing systems built to calculate capillary density. a) Parallel Frameworks Hadoop [14] gained recognition in 2004 and provides a framework for distributed storage and the processing of big data. It splits large blocks of data into a Hadoop Distributed File System (HDFS) which is based on Google’s file system (GFS) and stores data across clusters [15], [16]. HDFS uses data locality, allowing clusters and nodes to manipulate data, making it faster than conventional high-performance computing [17]. MapReduce then processes the data stored on HDFS [18]. MapReduce has a master job tracker and one per cluster to schedule jobs, manage resources, and re-execute processes when a node fails [17]. HDFS and MapReduce are two modules built to store and process big data reliably. However, the main drawback of Hadoop is that it cannot deal with big data real-time stream processing; therefore, Apache Spark was introduced [19] was introduced in 2010. Some benchmarks show that Spark is three times faster than Hadoop [20]. This increase is because Spark can load and process data using RAM instead of the two-stage access paradigm introduced by MapReduce [19]. Spark outshines MapReduce when it comes to real-time processing [21], [22]. Furthermore, the ease of programming on Spark with Scala [23], Java [24] and Python [22] makes it relatively easy to adapt instead of MapReduce, which can be programmed only in Java. Spark provides a unified processing system instead of several isolated applications that do not share the state amongst each other [25]. Although Spark was designed to outperform MapReduce processing, its the fundamental limitation is the complexity involving asynchronous execution and the compatibility issues introduced when integrating it into the deep learning lifecycle [26]. Dask [27] was introduced in 2014 and is a parallel computing library that uses dynamic task scheduling to leverage multi-core processors and High- Performance Computing (HPC) clusters. Instead of loading all data into RAM, Dask pulls data into RAM in chunks and throws away intermediate values as soon as possible, freeing more memory to process more data [27]. While Spark can be seen as an extension to the MapReduce paradigm, Dask is a generic task scheduling system that handles complex dimensional arrays [28]–[30]. Both Dask and Spark leverage acyclic graphs, but the map stage of Dask can represent more complex algorithms than Spark [31]. Thus, Dask can parallelize sophisticated algorithms without excess memory usage [29]. Moreover, Spark does not natively support multi-dimensional arrays as Dask does [30], [32]. This advantage makes Dask lightweight and smaller than Spark, and Dask integrates natively with the numeric Python ecosystem. However, Dask is not fully compatible with TensorFlow, and deep learning algorithms as the framework focuses on Data science libraries like Pandas and Numpy. Orleans [33] is an actor system that provides highly available concurrent distributed systems. The main drawback is how the system reacts to a data failure event. Developers must manually create checkpoint actor states and intermediate responses to restore stateful actors [34]. While this does not affect the performance, it can bring some overhead when developing a system to handle failure events. Tensorflow [35] is an ecosystem of machine learning and deep learning tools that leverage CPUs and GPUs while training. However, it provides limited support when deploying it to serve users because it does not fully support responses when a task is completed or when a fault is detected. One way to perform this activity is to wrap the Tensorflow Model in a flask service and serve the model [36]. However, this becomes unmanageable when scaling with different models. Tensorflow serving [37] was introduced to deploy models in production environments but has to be used in conjunction with traditional web servers, which introduces additional latency. With the introduction of deep learning techniques [38], which consists of several millions of parameters to compute, wrapping deep learning models with traditional servers is no longer sufficient. Compared to traditional models, deep learning models are computationally intensive and have a response time of tens of a millisecond or greater [39]; thus, there is a need for efficient parallelizing to reduce the response time. Capillary X: A Software Design Pattern for Analyzing Medical Images in Real-time using Deep Learning Global Journal of Computer Science and Technology Volume XXII Issue II Version I 14 Year 2022 ( ) C © 2022 Global Journals ∼
RkJQdWJsaXNoZXIy NTg4NDg=