60,900 research outputs found

    Teaching Parallel Programming Using Java

    Full text link
    This paper presents an overview of the "Applied Parallel Computing" course taught to final year Software Engineering undergraduate students in Spring 2014 at NUST, Pakistan. The main objective of the course was to introduce practical parallel programming tools and techniques for shared and distributed memory concurrent systems. A unique aspect of the course was that Java was used as the principle programming language. The course was divided into three sections. The first section covered parallel programming techniques for shared memory systems that include multicore and Symmetric Multi-Processor (SMP) systems. In this section, Java threads was taught as a viable programming API for such systems. The second section was dedicated to parallel programming tools meant for distributed memory systems including clusters and network of computers. We used MPJ Express-a Java MPI library-for conducting programming assignments and lab work for this section. The third and the final section covered advanced topics including the MapReduce programming model using Hadoop and the General Purpose Computing on Graphics Processing Units (GPGPU).Comment: 8 Pages, 6 figures, MPJ Express, MPI Java, Teaching Parallel Programmin

    MPIAB: A Novel Agent Architecture for Parallel Processing

    Get PDF
    This paper presents MPIAB, an agent based architecture for parallel processing. The architecture is developed to model the functions of standard MPI using Java agents. It remedies the deficiencies that exist in MPI, including the incapability to operate in heterogeneous environments. The architecture also addresses other issues such as effective utilization of system resources by dynamically selecting the least busy computing nodes through the computation of a threshold barrier value. Our proposed agent architecture would integrate the power of Java technology and agents to support efficient communication and synchronization of the nodes over the network for parallel processing

    Client-Server Application Based on CORBA

    Get PDF
    Bakalárska práca sa zaoberá problematikou klient-server aplikácií a technológiami používanými na softvérovú implementáciu klient-server aplikácií v programovacom jazyku Java. Cieľom bakalárskej práce je paralelizácia genetického algoritmu pre problém batohu a vytvorenie dvoch distribuovaných modelov pre technológie CORBA a Hessian. V teoretickej časti práce sú popísané základné pojmy týkajúce sa sieťovej komunikácie, vysvetlenie klient-server modelu sieťovej komunikácie, sú rozobraté technológie Java RMI, CORBA a Hessian. V práci je popísaný paralelný a distribuovaný model spracovania dát, genetický algoritmus a jeho využitie na vyriešenie problému naplnenia batohu. V praktickej časti je vytvorený paralelný a distribuovaný model genetického algoritmu pre problém naplnenia batohu s použitím technológií CORBA a Hessian. V práci je spravené porovnanie týchto modelov z hľadiska času výpočtu. Výsledky merania času genetického algoritmu sú v tabuľkách.Bachelor thesis deals with client-server applications and software technologies used to implement client-server applications in the Java programming language. The goal of bachelor thesis is the parallelization of genetic algorithm for knapsack problem and create two distributed models for technology CORBA and Hessian. In the teoretical part of the thesis are describes the basic concept of network communication, explanation client-server model of network communication, there are discussed technologies Java RMI, CORBA and Hessian. In the thesis is described the parallel and the distributed model of data processing, genetic algorithm and its use to solve the knapsack problem. In the practical part is created parallel and distributed model of a genetic algorithm for knapsack problem using technology CORBA and Hessian. In the thesis is done comparison of parallel model and distributed models in terms of calculation time. Results of measurement time are displayed in tables.

    Probabilistic Graphical Models on Multi-Core CPUs using Java 8

    Get PDF
    In this paper, we discuss software design issues related to the development of parallel computational intelligence algorithms on multi-core CPUs, using the new Java 8 functional programming features. In particular, we focus on probabilistic graphical models (PGMs) and present the parallelisation of a collection of algorithms that deal with inference and learning of PGMs from data. Namely, maximum likelihood estimation, importance sampling, and greedy search for solving combinatorial optimisation problems. Through these concrete examples, we tackle the problem of defining efficient data structures for PGMs and parallel processing of same-size batches of data sets using Java 8 features. We also provide straightforward techniques to code parallel algorithms that seamlessly exploit multi-core processors. The experimental analysis, carried out using our open source AMIDST (Analysis of MassIve Data STreams) Java toolbox, shows the merits of the proposed solutions.Comment: Pre-print version of the paper presented in the special issue on Computational Intelligence Software at IEEE Computational Intelligence Magazine journa

    Parallel computing for artificial neural network training

    Get PDF
    The big-data is an oil of this century. A high amount of computational power is required to get knowledge from data. Parallel and distributed computing is essential to processing a large amount of data. Artificial Neural Networks (ANNs) need as much as possible data to have high accuracy, whereas parallel processing can help us to save time in ANNs training. In this paper, we have implemented exemplary parallelization of neural network training by dint of Java and its native socket libraries. During the experiments, we have noticed that Java implementation tends to have memory issues when a large amount of training data sets are involved in training. We have remarked that exemplary parallelization of a neural network training will not outperform drastically when additional nodes are introduced into the system after a certain point. This is widely due to network communication complexity in the system

    URL Recommender using Parallel Processing

    Get PDF
    The main purpose of this project is to section similar news and articles from a vast variety of news articles. Let’s say, you want to read about latest news related to particular topic like sports. Usually, user goes to a particular website and goes through some news but he won’t be able to cover all the news coverage in a single website. So, he would be going through some other news website to checking it out and this continues. Also, some news websites might be containing some old news and the user might be going through that. To solve this, I have developed a web application where in user can see all the latest news from different websites in a single place. Users are given choice to select the news websites from which they want to view the latest news. The articles which we get from news websites are very random and we will be applying the DBSCAN algorithm and place the news articles in the cluster form for each specific topic for user to view. If the user wants to see sports, he will be provided with sports news section. And this process of extracting random news articles and forming news clusters are done at run time and at all times we will get the latest news as we will be extracting the data from web at run time. This is an effective way to watch all news at single place. And in turn this can be used as articles (URL) recommender as the user has to just go through the specific cluster which interests him and not visit all news websites to find articles. This way the user does not have to visit different sites to view all latest news. This idea can be expanded to not just news articles but also in other areas like collecting statistics of financial information etc. As the processing is done at runtime, the performance has to be improved. To improve the performance, the distributed data mining is used and multiple servers are being used which communicate with each other
    corecore