<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">JSEA</journal-id><journal-title-group><journal-title>Journal of Software Engineering and Applications</journal-title></journal-title-group><issn pub-type="epub">1945-3116</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/jsea.2015.83011</article-id><article-id pub-id-type="publisher-id">JSEA-54368</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Computer Science&amp;Communications</subject></subj-group></article-categories><title-group><article-title>
 
 
  Distributed C-Means Algorithm for Big Data Image Segmentation on a Massively Parallel and Distributed Virtual Machine Based on Cooperative Mobile Agents
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>atéma</surname><given-names>Zahra Benchara</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Mohamed</surname><given-names>Youssfi</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Omar</surname><given-names>Bouattane</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Hassan</surname><given-names>Ouajji</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Mohammed</surname><given-names>Ouadi Bensalah</given-names></name><xref ref-type="aff" rid="aff2"><sup>2</sup></xref></contrib></contrib-group><aff id="aff1"><addr-line>Laboratory SSDIA, ENSET Mohammedia, University Hassan II of Casablanca, Casablanca, Morocco</addr-line></aff><aff id="aff2"><addr-line>FSR, University Mohammed V, Rabat, Morocco</addr-line></aff><author-notes><corresp id="cor1">* E-mail:<email>benchara.fatemazahra@gmail.com(AZB)</email>;<email>med@youssfi.net(MY)</email>;<email>o.bouattane@gmail.com(OB)</email>;</corresp></author-notes><pub-date pub-type="epub"><day>03</day><month>03</month><year>2015</year></pub-date><volume>08</volume><issue>03</issue><fpage>103</fpage><lpage>113</lpage><history><date date-type="received"><day>11</day>	<month>February</month>	<year>2015</year></date><date date-type="rev-recd"><day>accepted</day>	<month>28</month>	<year>February</year>	</date><date date-type="accepted"><day>3</day>	<month>March</month>	<year>2015</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  The aim of this paper is to present a distributed algorithm for big data classification, and its application for Magnetic Resonance Images (MRI) segmentation. We choose the well-known classification method which is the c-means method. The proposed method is introduced in order to perform a cognitive program which is assigned to be implemented on a parallel and distributed machine based on mobile agents. The main idea of the proposed algorithm is to execute the c-means classification procedure by the Mobile Classification Agents (Team Workers) on different nodes on their data at the same time and provide the results to their Mobile Host Agent (Team Leader) which computes the global results and orchestrates the classification until the convergence condition is achieved and the output segmented images will be provided from the Mobile Classification Agents. The data in our case are the big data MRI image of size (m &#215; n) which is splitted into (m &#215; n) elementary images one per mobile classification agent to perform the classification procedure. The experimental results show that the use of the distributed architecture improves significantly the big data segmentation efficiency.
 
</p></abstract><kwd-group><kwd>Multi-Agent System</kwd><kwd> Distributed Algorithm</kwd><kwd> Big Data Image Segmentation</kwd><kwd> MRI Image</kwd><kwd> C-Means Algorithm</kwd><kwd> Mobile Agent</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>Multi-agent system is the aim of several researchers and developers in order to design and implement some methods and solutions which improve existing methods and create new ones in order to achieve high performance results, save time and make the work easy in many domains. As examples, in the renewable energy domain [<xref ref-type="bibr" rid="scirp.54368-ref1">1</xref>] the authors proposed a method that parallelizes the procedure for detection of illegal consumers of electricity which can be improved by the use of a distributed architecture based on the multi-agent systems; and in web semantic domain [<xref ref-type="bibr" rid="scirp.54368-ref2">2</xref>] the authors proposed a novel model for automatic construction of business processes based on multi-agent systems. In the high performance computing domain, the authors in [<xref ref-type="bibr" rid="scirp.54368-ref3">3</xref>] proposed the use of this technology in order to improve the management, the flexibility and the reusability of grid like parallel computing architectures.</p><p>For each new technology or method, we can distinguish its straightness and weakness. That is the case of the researchers who start by analyzing these two items related to their field in order to propose and argue their ideas. As in [<xref ref-type="bibr" rid="scirp.54368-ref4">4</xref>] , we start by analyzing the state of the art about the parallel computing strategies. We can say that the growth of number of data to be processed and the convergence of the applications from the standard to the distributed one make it necessary to use many cores of processors as a supercomputer. Due to the high cost of the supercomputers and the real parallel machines, it is feasible to use the parallel virtual machine as in [<xref ref-type="bibr" rid="scirp.54368-ref5">5</xref>] for specific work and [<xref ref-type="bibr" rid="scirp.54368-ref6">6</xref>] for global needs. It is based on a parallel and distributed grid computing that cooperates with the power of processors from heterogeneous computers by forming a distributed system for parallel computing. So it is possible to split tasks and data between them in order to reach the hoped level of high performance computing. But we do not need to forward the main component which is responsible of creating and managing the grid computing and also which supports the computing performance keys (load balancing, fault tolerance and communication cost) in the distributed system. As in [<xref ref-type="bibr" rid="scirp.54368-ref7">7</xref>] we propose a middleware for parallel and distributed computing which manipulates virtual processors (VPU objects) in different nodes of the grid. It is an innovated idea that was developed using the power of the multi-agent system.</p><p>In this paper, we propose a new method for big data classification which is a distributed c-means algorithm. It is based on different previous works and applied to MRI cerebral segmentation images in order to be implemented on a mobile agents’ parallel and distributed virtual machine. In this case we use the power of multi-agent system especially the mobile agents to answer to the parallel computing challenges where some of them are presented in [<xref ref-type="bibr" rid="scirp.54368-ref8">8</xref>] with a critical way. So we need to use applications that can run the scalable parallel algorithms and ensure a high performance computing for different cases. As in [<xref ref-type="bibr" rid="scirp.54368-ref9">9</xref>] the authors showed the improvement of the time efficiency of a medical reasoning system using multi-agent architecture. In [<xref ref-type="bibr" rid="scirp.54368-ref10">10</xref>] the authors proposed a parallel and distributed model based on mobile agent for high performance computing where we implemented the distributed c-means algorithm for MRI cerebral images segmentation.</p><p>Big data image segmentation is an analyzing image strategy which is emerged especially in the medicine domain using different algorithm specifications where the execution of the programs is based especially on the parallel computing strategy in order to achieve effective results. In this case we choose to test by the c-means classification algorithm to implement it on different parallel architectures. In [<xref ref-type="bibr" rid="scirp.54368-ref11">11</xref>] , the authors proposed a method that subdivided the c-means program into several elementary operations which were organized in pipeline structure. In [<xref ref-type="bibr" rid="scirp.54368-ref12">12</xref>] , the authors have proposed an optimal clustering solution based on a reconfigurable array of processors, while in [<xref ref-type="bibr" rid="scirp.54368-ref13">13</xref>] the authors proposed a SIMD parallel segmentation c-means algorithm.</p><p>The proposed method in this paper is a distributed c-means algorithm for big data classification; it is assigned to be implemented on a parallel and distributed virtual machine based on mobile agents. The corresponding distributed program is validated on a multi-agent system platform using the JADE middleware and an extensible and flexible smart grid computing of the same size as the input image. This paper is organized as follows: the second section makes an overview of the distributed computational model. Section 3 presents the distributed c-means algorithm while Section 4 is focused on the results concluded by implementing this distributed c-means algorithm. The last section presents some interesting obtained results and the effectiveness, and some perspectives of this work.</p></sec><sec id="s2"><title>2. Distributed Computational Model</title><sec id="s2_1"><title>2.1. Model Overview</title><p>A cooperative multi-agent platform is a massively parallel and distributed virtual machine where the mobile agents which represent the Processing Elements (PEs) are involved in the execution of the parallel programs on different structures (SIMD, SPMD, MIMD…) and topologies (2D Mesh, 3D Mesh, hierarchical…) according to the parallel problem to resolve.</p><p>In this work we implement the well known algorithm for big data image segmentation which is the c-means algorithm as a distributed program on this model by using SPMD structure. The main components which are engaged to perform the execution of this program are the host agent and the team worker agents that are designed to play the roles introduced in <xref ref-type="fig" rid="fig1">Figure 1</xref>.</p></sec><sec id="s2_2"><title>2.2. Intelligent Mobile Agents Grid Computing</title><p>This model is based on an intelligent grid computing organized as a bidimensional 2D mesh topology (<xref ref-type="fig" rid="fig2">Figure 2</xref>) of size m &#215; n, in which each mobile agent MPE (Mobile Processing Element) is localized in row i and column j and has an AID (Agent Identifier). <xref ref-type="fig" rid="fig2">Figure 2</xref> shows an example of (2 &#215; 2) workers machines hosted by M0. All the agents (i, j) in the mesh execute their tasks autonomously and maintain asynchronous communication by exchanging ACL (Agent Communication Language) Messages between each other over the grid computing. In order to achieve a high performance computing of the big data image segmentation, it is important to deploy the large amount of skills of these agents, as:</p><p>1) Autonomy: each mobile agent can perform, image classification autonomously. It can extend its activities to make the diagnostic on images and generates reports and data for eventual decisions.</p><p>2) Adaptability: it can execute its tasks in different environments with the same performance as in the environment where it was created.</p><p>3) Mobility: it can move from one machine to another and resume its tasks if some parallel computing challenges happen.</p><p>4) Asynchronous communication ability: it can exchange data, tasks and knowledge using ACL message in remote or local communication.</p><fig id="fig1"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref></label><caption><title> Overview of the main goal of the model</title></caption>
<table-wrap id="table_fig1" >
<object-id pub-id-type="pii">
<xref ref-type="table" rid="table1">Table 1</xref></object-id>
</table-wrap></fig></sec></sec><sec id="s3"><title>3. Distributed Segmentation Algorithm</title><sec id="s3_1"><title>3.1. Standard C-Means Algorithm</title><p>The c-means algorithm as defined in [<xref ref-type="bibr" rid="scirp.54368-ref13">13</xref>] , is an image segmentation algorithm which consists on a partitioned groups of set S of n attribute vectors into c classes (clusters C<sub>i</sub> i = 1, ・・・, c). In this algorithm [<xref ref-type="bibr" rid="scirp.54368-ref13">13</xref>] authors used the pixel gray level as the main classification attribute. The finale goal is to find the class centers (centro&#239;d) that minimize the cost function J defined by the following equation:<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-9302036x11.png" xlink:type="simple"/></inline-formula>. To do so, we have to execute the different equations, given in <xref ref-type="table" rid="table1">Table 1</xref>.</p><p>The c-means classification is achieved using the following algorithm stages which are summarized in <xref ref-type="fig" rid="fig3">Figure 3</xref>.</p></sec><sec id="s3_2"><title>3.2. Distributed C-Means Algorithm</title><p>In this section, we present our distributed implementation of the c-means algorithm on a cooperative multi-agent platform using the 2D mesh architecture of the same size as the input image (MRI cerebral image of 256 gray levels). MRI images are stored on a cooperative multi-agent platform one pixel per agent. In order to perform the distributed c-means classification of the image in this model we need to perform the following three global stages as shown in <xref ref-type="fig" rid="fig4">Figure 4</xref>.</p><p>1) Host agent initialization: when our segmentation platform goes on. The host agent is the first one created, and initialized by the size of the data image which is in our case (m &#215; n).</p><fig id="fig1"  position="float"><label><xref ref-type="fig" rid="fig2">Figure 2</xref></label><caption><title> 2D mesh mobile agent grid computing of 5 physical machines</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-9302036x12.png"/></fig><table-wrap-group id="1"><label><xref ref-type="table" rid="table1">Table 1</xref></label><caption><title> The different equations needed for the classification c-means</title></caption><table-wrap id="1_1"><table><tbody><thead><tr><th align="center" valign="middle" >Equation number</th><th align="center" valign="middle" >Equation</th><th align="center" valign="middle" >Description</th></tr></thead><tr><td align="center" valign="middle" >1</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-9302036x13.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >The objective function defined by the Euclidean distance (distance between i<sup>th</sup> center c<sub>i</sub> and the k<sup>th</sup> data of S).</td></tr><tr><td align="center" valign="middle" >2</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-9302036x14.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >The membership matrix element where i = 1 to c, j = 1 to n, for a total number n of points in S. It has two properties: <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-9302036x15.png" xlink:type="simple"/></inline-formula> <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-9302036x16.png" xlink:type="simple"/></inline-formula></td></tr><tr><td align="center" valign="middle" >3</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-9302036x17.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >The class center where i = 1 to c by the average of all its attribute vectors and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-9302036x18.png" xlink:type="simple"/></inline-formula> is the cardinal of<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-9302036x19.png" xlink:type="simple"/></inline-formula>.</td></tr></tbody></table></table-wrap></table-wrap-group><p>2) Grid construction: just after the initialization, the host agent splits the input image into (m &#215; n) elementary images and then deploys a list of the classification agents which each of them encapsulates an elementary image and moves to a specific destination where it supposes to execute it tasks.</p><p>3) C-means classification: to start the data segmentation, the classification agents process, the classification tasks and the initial class centers which are sent by their host agent, and execute the local class determination task in order to compute the membership matrix. Then they replay the message with the results to their host agent which assembles the elementary results from all the classification agents and performs the global class determination and computes the cost function J and test the condition. If it is not achieved, it sends a new class centers to the classification agents to repeat the classification until it is achieved. Finally the host agent sends a request to the classification agents in order to send the output elementary images which will be assembled in order to display the c output segmented images for the classification.</p></sec></sec><sec id="s4"><title>4. Distributed C-Means Algorithm Implementation and Results</title><sec id="s4_1"><title>4.1. Multi-Agent System Middleware</title><p>This cooperative and intelligent platform is a distributed and parallel virtual machine on which we implemented the image segmentation algorithm according to the model of <xref ref-type="fig" rid="fig5">Figure 5</xref>. It is based especially on the JADE middleware [<xref ref-type="bibr" rid="scirp.54368-ref14">14</xref>] and on the mobile agent skills.</p><p>Thanks to the JADE middleware, we prepare the platform where we run the parallel and distributed c-means program. The main components of this model are:</p><p>・ The main container: it is the first container which starts in the platform and which is different from the others by its two special agents (the AMS agent and the DF agent). It connects all the performed containers in the platform.</p><p>・ The host container: is the second container that is started in the platform where the host agent is created in order to manage the required infrastructure and computational inside in the physical grid computing.</p><p>・ The agent containers: the free containers are started in the platform to receive groups of the classification agents so that each group can execute its classification tasks.</p><p>In a multi-agent system, we distinguish the mobile agents that have interesting and additional skill from the other agents which is the ability to migrate between nodes. It is considered the one key of the high performance computing and it fit well with our main goal.</p><fig id="fig2"  position="float"><label><xref ref-type="fig" rid="fig4">Figure 4</xref></label><caption><title> Distributed c-means program execution organization chart</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-9302036x21.png"/></fig><p>The mobile agents are considered as Processing Elements (PEs) which encapsulate tasks and data in order to achieve the parallel programs execution. So they are independent inside their containers, where they are deployed, in order to stay or move to the most suitable environment to achieve perfectly their tasks. They have the ability to communicate between each other asynchronously by exchanging ACL messages. Thanks to the high performance of the mobile agent we can take strong control about all the parallel computing challenges: load balancing, fault tolerance and communication cost. This allows us to constitute a cooperative and intelligent grid for high performance computing.</p></sec><sec id="s4_2"><title>4.2. Implementation and Results</title><p>This part presents the implementation of the proposed distributed c-means program in our cooperative platform according to the organization chart presented in <xref ref-type="fig" rid="fig4">Figure 4</xref> using the MRI cerebral image. We obtain the following results: the <xref ref-type="fig" rid="fig6">Figure 6</xref>(a) corresponds to a human cerebral cut; it is the original input image of the program which is split into (m &#215; n) elementary images as in <xref ref-type="fig" rid="fig6">Figure 6</xref>(b). And the Figures 6(c)-(e), are the segmented</p><fig id="fig3"  position="float"><label><xref ref-type="fig" rid="fig5">Figure 5</xref></label><caption><title> Distributed computational model architecture for c-means classification</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-9302036x22.png"/></fig><fig-group id="fig4"><label><xref ref-type="fig" rid="fig6">Figure 6</xref></label><caption><title> Segmentation results by the elaborated distributed program.</title></caption><fig id ="fig4_1"><label></label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-9302036x23.png"/></fig><fig id ="fig4_2"><label></label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-9302036x24.png"/></fig></fig-group><p>output images where each of them corresponds to a specific class: the gray matter, the cerebrospinal fluid and the white matter.</p><p>The effectiveness features of this distributed method for data image classification is shown under these three cases of studies for dynamic convergence analysis and time classification analysis under the fourth case.</p><p>1) (c<sub>1</sub>, c<sub>2</sub>, c<sub>3</sub>) = (1, 2, 3) where we see clearly in <xref ref-type="table" rid="table2">Table 2</xref> the convergence of the algorithm after 15 iterations to the final class centers (c<sub>1</sub>, c<sub>2</sub>, c<sub>3</sub>) = (28.60, 101.60, 146.03) and which are illustrated in <xref ref-type="fig" rid="fig7">Figure 7</xref>.</p><table-wrap id="table2" ><label><xref ref-type="table" rid="table2">Table 2</xref></label><caption><title> Different states of the classification algorithm starting from class centers (c<sub>1</sub>, c<sub>2</sub>, c<sub>3</sub>) = (1, 2, 3)</title></caption><table><tbody><thead><tr><th align="center" valign="middle"  rowspan="2"  >Iteration</th><th align="center" valign="middle"  colspan="3"  >Value of each class center</th><th align="center" valign="middle" >Absolute value of the error</th></tr></thead><tr><td align="center" valign="middle" >c<sub>1</sub></td><td align="center" valign="middle" >c<sub>2</sub></td><td align="center" valign="middle" >c<sub>3</sub></td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-9302036x25.png" xlink:type="simple"/></inline-formula></td></tr><tr><td align="center" valign="middle" >1</td><td align="center" valign="middle" >1.00</td><td align="center" valign="middle" >2.00</td><td align="center" valign="middle" >3.00</td><td align="center" valign="middle" >4.96E+06</td></tr><tr><td align="center" valign="middle" >2</td><td align="center" valign="middle" >1.00</td><td align="center" valign="middle" >2.00</td><td align="center" valign="middle" >120.14</td><td align="center" valign="middle" >4.42E+06</td></tr><tr><td align="center" valign="middle" >3</td><td align="center" valign="middle" >1.00</td><td align="center" valign="middle" >33.86</td><td align="center" valign="middle" >129.57</td><td align="center" valign="middle" >3.26E+06</td></tr><tr><td align="center" valign="middle" >4</td><td align="center" valign="middle" >4.38</td><td align="center" valign="middle" >51.91</td><td align="center" valign="middle" >132.04</td><td align="center" valign="middle" >1.33E+06</td></tr><tr><td align="center" valign="middle" >5</td><td align="center" valign="middle" >6.15</td><td align="center" valign="middle" >58.40</td><td align="center" valign="middle" >133.23</td><td align="center" valign="middle" >1.50E+05</td></tr><tr><td align="center" valign="middle" >6</td><td align="center" valign="middle" >7.14</td><td align="center" valign="middle" >60.05</td><td align="center" valign="middle" >133.43</td><td align="center" valign="middle" >5.36E+04</td></tr><tr><td align="center" valign="middle" >7</td><td align="center" valign="middle" >7.14</td><td align="center" valign="middle" >65.14</td><td align="center" valign="middle" >134.44</td><td align="center" valign="middle" >2.34E+05</td></tr><tr><td align="center" valign="middle" >8</td><td align="center" valign="middle" >16.70</td><td align="center" valign="middle" >72.44</td><td align="center" valign="middle" >134.64</td><td align="center" valign="middle" >9.02E+05</td></tr><tr><td align="center" valign="middle" >9</td><td align="center" valign="middle" >21.49</td><td align="center" valign="middle" >90.47</td><td align="center" valign="middle" >141.16</td><td align="center" valign="middle" >2.76E+06</td></tr><tr><td align="center" valign="middle" >10</td><td align="center" valign="middle" >24.68</td><td align="center" valign="middle" >93.37</td><td align="center" valign="middle" >142.41</td><td align="center" valign="middle" >1.24E+05</td></tr><tr><td align="center" valign="middle" >11</td><td align="center" valign="middle" >28.60</td><td align="center" valign="middle" >95.44</td><td align="center" valign="middle" >142.42</td><td align="center" valign="middle" >7.92E+04</td></tr><tr><td align="center" valign="middle" >12</td><td align="center" valign="middle" >28.60</td><td align="center" valign="middle" >96.71</td><td align="center" valign="middle" >142.98</td><td align="center" valign="middle" >1.02E+05</td></tr><tr><td align="center" valign="middle" >13</td><td align="center" valign="middle" >28.60</td><td align="center" valign="middle" >100.94</td><td align="center" valign="middle" >145.51</td><td align="center" valign="middle" >2.41E+05</td></tr><tr><td align="center" valign="middle" >14</td><td align="center" valign="middle" >28.60</td><td align="center" valign="middle" >101.60</td><td align="center" valign="middle" >146.03</td><td align="center" valign="middle" >5.64E+03</td></tr><tr><td align="center" valign="middle" >15</td><td align="center" valign="middle" >28.60</td><td align="center" valign="middle" >101.60</td><td align="center" valign="middle" >146.03</td><td align="center" valign="middle" >0.00E+00</td></tr></tbody></table></table-wrap><fig-group id="fig5"><label><xref ref-type="fig" rid="fig7">Figure 7</xref></label><caption><title> Dynamic changes of the class centers starting from (c<sub>1</sub>, c<sub>2</sub>, c<sub>3</sub>) = (1, 2, 3). (a) Class centers; (b) Error of the objective function.</title></caption><fig id ="fig5_1"><label> (b)</label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-9302036x27.png"/></fig><fig id ="fig5_2"><label></label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-9302036x26.png"/></fig></fig-group><p>2) (c<sub>1</sub>, c<sub>2</sub>, c<sub>3</sub>) = (1, 30, 255) where the algorithm converges to the same final class centers of the case 1 (c<sub>1</sub>, c<sub>2</sub>, c<sub>3</sub>) = (28.60, 101.60, 146.03) after 5 iterations as shown in <xref ref-type="table" rid="table3">Table 3</xref> and which are illustrated in <xref ref-type="fig" rid="fig8">Figure 8</xref>.</p><p>3) (c<sub>1</sub>, c<sub>2</sub>, c<sub>3</sub>) = (140, 149, 255) where the algorithm converges to the final class centers (c<sub>1</sub>, c<sub>2</sub>, c<sub>3</sub>) = (33.37, 103.50, 146.03) after 10 iterations as shown in <xref ref-type="table" rid="table4">Table 4</xref> which are illustrated in <xref ref-type="fig" rid="fig9">Figure 9</xref>.</p><p>In <xref ref-type="fig" rid="fig1">Figure 1</xref>0, we present the variation of the classification time according to the number of agents involved in the computing using the initial class centers (1, 2, 3).</p><p>In this experience, the used distributed system is composed by 8 CPUs. We notice that the execution time is decreasing according to the number of classification agents. From 8 agents, the classification time saved become very small. This is due to the fact that the distributed system is composed of 8 CPUs.</p><table-wrap id="table3" ><label><xref ref-type="table" rid="table3">Table 3</xref></label><caption><title> Different states of the classification algorithm starting from class centers (c<sub>1</sub>, c<sub>2</sub>, c<sub>3</sub>) = (1, 30, 255)</title></caption><table><tbody><thead><tr><th align="center" valign="middle"  rowspan="2"  >Iteration</th><th align="center" valign="middle"  colspan="3"  >Value of each class center</th><th align="center" valign="middle" >Absolute value of the Error</th></tr></thead><tr><td align="center" valign="middle" >c<sub>1</sub></td><td align="center" valign="middle" >c<sub>2</sub></td><td align="center" valign="middle" >c<sub>3</sub></td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-9302036x28.png" xlink:type="simple"/></inline-formula></td></tr><tr><td align="center" valign="middle" >1</td><td align="center" valign="middle" >1.00</td><td align="center" valign="middle" >30.00</td><td align="center" valign="middle" >255.00</td><td align="center" valign="middle" >1.47E+08</td></tr><tr><td align="center" valign="middle" >2</td><td align="center" valign="middle" >4.32</td><td align="center" valign="middle" >102.35</td><td align="center" valign="middle" >151.79</td><td align="center" valign="middle" >1.43E+08</td></tr><tr><td align="center" valign="middle" >3</td><td align="center" valign="middle" >24.68</td><td align="center" valign="middle" >100.37</td><td align="center" valign="middle" >146.29</td><td align="center" valign="middle" >1.42E+06</td></tr><tr><td align="center" valign="middle" >4</td><td align="center" valign="middle" >28.60</td><td align="center" valign="middle" >101.60</td><td align="center" valign="middle" >146.03</td><td align="center" valign="middle" >4.53E+04</td></tr><tr><td align="center" valign="middle" >5</td><td align="center" valign="middle" >28.60</td><td align="center" valign="middle" >101.60</td><td align="center" valign="middle" >146.03</td><td align="center" valign="middle" >0.00E+00</td></tr></tbody></table></table-wrap><fig-group id="fig6"><label><xref ref-type="fig" rid="fig8">Figure 8</xref></label><caption><title> Dynamic changes of the class centers starting from (c<sub>1</sub>, c<sub>2</sub>, c<sub>3</sub>) = (1, 30, 255). (a) Class centers; (b) Error of the objective function.</title></caption><fig id ="fig6_1"><label> (b)</label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-9302036x30.png"/></fig><fig id ="fig6_2"><label></label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-9302036x29.png"/></fig></fig-group><table-wrap id="table4" ><label><xref ref-type="table" rid="table4">Table 4</xref></label><caption><title> Different states of the classification algorithm starting from class centers (c<sub>1</sub>, c<sub>2</sub>, c<sub>3</sub>) = (140, 149, 150)</title></caption><table><tbody><thead><tr><th align="center" valign="middle"  rowspan="2"  >Iteration</th><th align="center" valign="middle"  colspan="3"  >Value of each class center</th><th align="center" valign="middle" >Absolute value of the error</th></tr></thead><tr><td align="center" valign="middle" >c<sub>1</sub></td><td align="center" valign="middle" >c<sub>2</sub></td><td align="center" valign="middle" >c<sub>3</sub></td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-9302036x31.png" xlink:type="simple"/></inline-formula></td></tr><tr><td align="center" valign="middle" >1</td><td align="center" valign="middle" >140.00</td><td align="center" valign="middle" >149.00</td><td align="center" valign="middle" >150.00</td><td align="center" valign="middle" >4.01E+07</td></tr><tr><td align="center" valign="middle" >2</td><td align="center" valign="middle" >95.62</td><td align="center" valign="middle" >148.99</td><td align="center" valign="middle" >151.95</td><td align="center" valign="middle" >2.65E+07</td></tr><tr><td align="center" valign="middle" >3</td><td align="center" valign="middle" >82.13</td><td align="center" valign="middle" >140.26</td><td align="center" valign="middle" >152.83</td><td align="center" valign="middle" >3.72E+06</td></tr><tr><td align="center" valign="middle" >4</td><td align="center" valign="middle" >73.36</td><td align="center" valign="middle" >127.72</td><td align="center" valign="middle" >151.79</td><td align="center" valign="middle" >1.81E+06</td></tr><tr><td align="center" valign="middle" >5</td><td align="center" valign="middle" >51.98</td><td align="center" valign="middle" >117.99</td><td align="center" valign="middle" >151.79</td><td align="center" valign="middle" >3.41E+06</td></tr><tr><td align="center" valign="middle" >6</td><td align="center" valign="middle" >40.07</td><td align="center" valign="middle" >114.55</td><td align="center" valign="middle" >151.15</td><td align="center" valign="middle" >7.80E+05</td></tr><tr><td align="center" valign="middle" >7</td><td align="center" valign="middle" >34.22</td><td align="center" valign="middle" >107.44</td><td align="center" valign="middle" >147.88</td><td align="center" valign="middle" >6.90E+05</td></tr><tr><td align="center" valign="middle" >8</td><td align="center" valign="middle" >33.37</td><td align="center" valign="middle" >104.04</td><td align="center" valign="middle" >146.29</td><td align="center" valign="middle" >1.21E+05</td></tr><tr><td align="center" valign="middle" >9</td><td align="center" valign="middle" >33.37</td><td align="center" valign="middle" >103.50</td><td align="center" valign="middle" >146.03</td><td align="center" valign="middle" >2.45E+03</td></tr><tr><td align="center" valign="middle" >10</td><td align="center" valign="middle" >33.37</td><td align="center" valign="middle" >103.50</td><td align="center" valign="middle" >146.03</td><td align="center" valign="middle" >0.00E+00</td></tr></tbody></table></table-wrap><fig-group id="fig7"><label><xref ref-type="fig" rid="fig9">Figure 9</xref></label><caption><title> Dynamic changes of the class centers starting from (c<sub>1</sub>, c<sub>2</sub>, c<sub>3</sub>) = (140, 149, 150). (a) Class centers; (b) Error of the objective function.</title></caption><fig id ="fig7_1"><label> (b)</label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-9302036x33.png"/></fig><fig id ="fig7_2"><label></label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-9302036x32.png"/></fig></fig-group><fig id="fig8"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>0</label><caption><title> Time of classification (Tc) depending on the number of agents and with initial class centers (c<sub>1</sub>, c<sub>2</sub>, c<sub>3</sub>) = (1, 2, 3)</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-9302036x34.png"/></fig></sec></sec><sec id="s5"><title>5. Conclusion</title><p>In this paper, we have presented the distributed c-means classification algorithm and its implementation on a cooperative platform based on mobile agents. We considered a new method that allows us to distribute the c-means algorithm and encapsulate its program in mobile agents. In order to execute the parallel programs in our grid computing, the data are splitted and the program instructions are shared between the mobile agents. We considered a segmentation application algorithm on MRI cerebral image which is performed on this new cooperative multi-agent platform. The obtained results show that we can reduce the complexity of the parallel programs thanks to the benefits of mobile agents. Moreover, it contributes to overcoming the big data challenges and offers a high-performance computing tool using multi-agent system. This cooperative agent platform is flexible and extensible for parallel algorithms trends.</p></sec><sec id="s6"><title>Cite this paper</title><p>Fat&#233;ma Zahra Benchara,Mohamed Youssfi,Omar Bouattane,Hassan Ouajji,Mohammed Ouadi Bensalah, (2015) Distributed C-Means Algorithm for Big Data Image Segmentation on a Massively Parallel and Distributed Virtual Machine Based on Cooperative Mobile Agents. Journal of Software Engineering and Applications,08,103-113. doi: 10.4236/jsea.2015.83011</p></sec></body><back><ref-list><title>References</title><ref id="scirp.54368-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Depuru, S.S.S.R., Wang, L.F., Devabhaktuni, V. and Green, R.C. (2013) High Performance Computing for Detection of Electricity Theft. International Journal of Electrical Power &amp; Energy Systems, 47, 21-30. http://dx.doi.org/10.1016/j.ijepes.2012.10.031</mixed-citation></ref><ref id="scirp.54368-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Coria, J.A.G., Castellanos-Garzón, J.A. and Corchado, J.M. (2014) Intelligent Business Processes Composition Based on Multi-Agent Systems. Expert Systems with Applications, 41, 1189-1205. http://dx.doi.org/10.1016/j.eswa.2013.08.003</mixed-citation></ref><ref id="scirp.54368-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Sánchez, D., Isern, D., Rodríguez-Rozas, á. and Moreno, A. (2011) Agent-Based Platform to Support the Execution of Parallel Tasks. Expert Systems with Applications, 38, 6644-6656. http://dx.doi.org/10.1016/j.eswa.2010.11.073</mixed-citation></ref><ref id="scirp.54368-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">El-Rewini, H. and Abd-El-Barr, M. (2005) Advanced Computer Architecture and Parallel Processing. Wiley, Hoboken.</mixed-citation></ref><ref id="scirp.54368-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Migliardi, M., Baglietto, P. and Maresca, M. (1998) Virtual Parallelism Allows Relaxing the Synch-ronization Constraints of SIMD Computing Paradigm. High-Performance Computing and Networking Lecture Notes in Computer Science, 1401, 784-793. http://dx.doi.org/10.1007/BFb0037206</mixed-citation></ref><ref id="scirp.54368-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">Youssfi, M., Bouattane, O. and Bensalah, M.O. (2010) On the Object Modelling of the Massively Parallel Architecture Computers. IASTED International Conference on Software Engineering, Innsb-ruck, 71-78.</mixed-citation></ref><ref id="scirp.54368-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">Youssfi, M., Bouattane, O., Benchara, F.Z. and Bensalah, M.O. (2014) A Fast Middleware for Massively Parallel and Distributed Computing. International Journal of Research in Computer and Commu-nication Technology, 3, 429-435.</mixed-citation></ref><ref id="scirp.54368-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">Hwu, W.-M. (2014) What Is Ahead for Parallel Computing. Journal of Parallel and Distributed Computing, 74, 2574-2581. http://dx.doi.org/10.1007/BFb0037206</mixed-citation></ref><ref id="scirp.54368-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">Rodríguez-González, A., Torres-Ni&amp;ntilde;o, J., Hernández-Chan, G., Jiménez-Domingo, E. and Alvarez-Rodríguez, J.M. (2012) Using Agents to Parallelize a Medical Reasoning System Based on Ontologies and Description Logics as an Application Case. Expert Systems with Applications, 39, 13085-13092. http://dx.doi.org/10.1016/j.eswa.2012.05.093</mixed-citation></ref><ref id="scirp.54368-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">Benchara, F.Z., Youssfi, M., Bouattane, O., Ouajji, H. and Bakkoury, J. (2014) A Fast Middleware of Parallel and Distributed Virtual Machine Based on Mobile Agents for High Performance Computing. Proceedings of CMT14, Morocco, 260-263.</mixed-citation></ref><ref id="scirp.54368-ref11"><label>11</label><mixed-citation publication-type="other" xlink:type="simple">Ni, L.M. and Jain, A.K. (1985) A VLSI Systolic Architecture for Pattern Clustering. IEEE Transaction on Pattern Analysis and Machine Intelligence, PAMI-7, 80-89. http://dx.doi.org/10.1109/TPAMI.1985.4767620</mixed-citation></ref><ref id="scirp.54368-ref12"><label>12</label><mixed-citation publication-type="other" xlink:type="simple">Tsai, H.R. and Horng, S.J. (1999) Optimal Parallel Clustering Algorithms on a Reconfigurable Array of Processors with Wider Bus Networks. Image and Vision Computing, 17, 925-936. http://dx.doi.org/10.1016/S0262-8856(98)00167-X</mixed-citation></ref><ref id="scirp.54368-ref13"><label>13</label><mixed-citation publication-type="other" xlink:type="simple">Bouattane, O., Cherradi, B., Youssfi, M. and Bensalah, M.O. (2011) Parallel Cmeans Algorithm for Image Segmentation on a Reconfigurable Mesh Computer. Parallel Computing, 37, 230-243. http://dx.doi.org/10.1016/j.parco.2011.03.001</mixed-citation></ref><ref id="scirp.54368-ref14"><label>14</label><mixed-citation publication-type="other" xlink:type="simple">Padgham, L. and Winikoff, M. (2004) Developing Intelligent Agent Systems. Wiley, Hoboken. http://dx.doi.org/10.1002/0470861223</mixed-citation></ref></ref-list></back></article>