DIPC, ALGORITHM THAT SATISFIES CLUSTERED ENVIRONMENT Hakim Hamid, *Mohamed Othman, J.Jais, Azhana Ahmad Email:
[email protected],
[email protected],
[email protected] *
[email protected] College of Information Technology, Universiti Tenaga Nasional, KM7, Jalan Kajang-Puchong, 43009 Kajang, Selangor Malaysia. ∗Network and Communication Technology Department Faculty of Computer Science & Information Technology, Universiti Putra Malaysia, 43400 Serdang, Selangor, Malaysia.
Abstract – In the emergence of InformationCommunication Technology (ICT) today, persistent needs for higher speeds of computation time is imperative. Companies and research institutions proposing kinds of new technology, tools and algorithms. Brisk research on distributed and parallel computing is comparable to other high speed computing technologies. This research will look deeper on the supremacy of IPC. DIPC meant for building clusters of Linux. It provides “Memory Pool” (shared memories) and other facilities such as message queue and semaphores. The current implementation requires i386 or m68k of Motorola machines to form DIPC cluster. This research will focus on a successful benchmark on computing times on message queue facility inside DIPC compared to other system V IPC inside other Distributed OSes (Solaris 2/x) ported on different machines (in this research six cloned Pentium-S 166MHz IBM). Overview of DIPC as a better distributed computing algorithm is also to be discussed in general.
Some portion of DIPC programs were also might need to be modified to suite the specific kernel.
Keywords – DIPC, Message Queue, Benchmark, Cluster, Kernel
Among these facilities there are many similarities. Consequently, the kernel information resides in it. The same facilities were practiced inside System V IPC (historically they are from the same ancestor – UNIX). Figure 1 and Figure 2 below show a benchmark on Message Queue facility.
1.0 INTRODUCTION Most distributed operating system was either built from scratch like Linda and Nexus or a modification of other liberated operating system. DIPC is a modified program from the open source Linux operating system. Lack of researches has made DIPC a forgotten useful element in distributed computing technology [5]. DIPC should be installed to a standard or later version of Linux kernel and ported on Linux/i386 or Linux/M68k machine. Integration with suitable Linux kernel is imperative as the kernel should be recompiled and installed [1]. Installation of incorrect kernel might lead to system crash or run-time errors.
This research will try to port DIPC onto latest Linux kernel and possibility to make DIPC universal codes which can adapt itself to universal kernel. Future implementation is to adopt DIPC into different distribution other than open source, perhaps OS/2 or Mac OS. The future stage would be the kernel development and its capability integration between DIPC, Mirage, and MOSIX, or any other distributed/parallel OSes. 2.0 DIPC FACILITIES There are three kinds of facility inside DIPC which are: • • •
Message queues Semaphores Shared memory
3.0 BENCHMARK RESULTS This benchmark shows that it is possible to design and implement simple, and easy to use heterogeneous distributed systems [1]. Previous research on benchmarks have not shown a very good result where most of the time DIPC will crash due to fragility of the program. Possibilities to the present of bad equipment or network medium would also cause problem to DIPC. Hence, it did not show a high remote operation speeds [3].
The fact is that DIPC is mainly a user-space system, with frequent needs to access the kernel data structures, which in a traditional UNIX system, like Linux, means a lot of overhead [2]. However, considering some modifications on the benchmark programs and re-installation of a more suitable Linux kernel will stabilize the system. Expecting the speed of computer system and communication equipment to rise much more quickly and the number of people trained for distributed programming, we expect this to be of minor inference for DIPC.
22000 21500 21000 20500 byte/sec
20000 19500 19000 18500 18000 1
There are many experimental distributed systems available for use. Many of them have been implemented in universities, using workstations produced by different manufacturers, and running other UNIX variants [2]. The fact that in most cases, researchers did not have free access to the underlying operating system’s source code has had a big influence on the design decisions. Thus, DIPC were made as such for other programmers have the ability to develop more research towards the underlying source code of DIPC. Figure 1 shows the benchmark of DIPC on Message Queue facility in a single stand-alone mode. Type Message Queue
Total byte/sec 16680 16630 16830 16840 21510 21520 21550
Figure 1: Benchmark for DIPC on Message Queue facility (clustered node) Comparing with the result with previous result from other researchers, we found that DIPC when executed inside more than two nodes has a positive result compared to a standalone DIPC. Four cloned i386 machines were installed with DIPC and benchmark shows that the throughput of the total bytes/second is faster than the result collected from System V IPC inside Digital UNIX and also faster than Solaris 2/x. Results for benchmark of DUNIX and Solaris 2/x can be found in [4]. From the result we suggest that DIPC is a better program when clustered but is not really usable programs for a standalone mode. Nevertheless when compared to several other OSes, DIPC still had better benchmark result. Detail explanation in Figure 3.
2
3
4
5
6
7
8
Result Sequence
Figure 2 Results for System Calls Benchmark (Message Queue with α > 1 node, α = node index) Result from Figure 2 shows that there are quite a consistency differences in DIPC Message Queue facility. The different score between node 4 and node 5 occurs due to number of nodes being used and the utilization of memory pool. . We found out that node 5 and node 6 were ported on a higher level of i386 machine with better random access memories (RAMs). The first four nodes were installed on a lower level i386 machine with lower capacity of random access memories (RAMs). When DIPC sense a bigger chunk of data been processed, it will distribute all the data equally to all nodes. We assume the process will get better with better hardware. The ability to process each chunk of data is very much depends on each clients speed and an optimum usage of memory pool. Another factor would be the size of data being processed. Seldom have we encountered an inconsistency in benchmarking DIPC. Research suggests that the bigger chunk of data is being processed, the better processing speed present. Figure 3 below shows the comparison among Message Queue facility in three different OSes (DIPC, Digital UNIX (DUNIX) and Solaris 2/x) [4]. Same kernel has been used to benchmark the facility. Name msgmnb
Description max #bytes on any one message
DIPC
DUNIX
Solaris
16680
16384
2048
queue
Figure 3: Comparison of Message Queue facility in 3 different Operating System. The figure show benchmark of maximum bytes per second for Message Queue facility inside DIPC is better than the same facility inside Digital UNIX and Solaris. Based on Figure 1 we suggest that when DIPC were clustered, it has far better benchmark compared to the other two OSes.
CONCLUSION Benchmarking DIPC facilities is not an easy task. It needs a lot of work from porting, modifying kernel, and making benchmark on DIPC. DIPC work faster when numbers of nodes are more than two rather than running under stand-alone environment (single node). It makes DIPC better tools when clustered. Result also shows that DIPC have better computing time in Message Queues facility compared to System V IPC ported on Solaris 2/x and Digital UNIX which makes DIPC a better program in distributed environment. DIPC’s processing speed is very much predisposed by the size of data received. Researches suggest that the more data processed, enhanced the computing time. The research also allows future research on other facilities such as Semaphore and Shared Memories. Our subsequent paper would be our research regarding other facilities (Semaphore and Shared Memories) inside DIPC. REFERENCES [1] K. Karimi, M. Schmitz, and M. Sharifi, “DIPC: A Heterogeneous Distributed Programming System”, The Third International Annual Computer Society of Iran Computer Conference (CSICC'97), Tehran, Iran, 1997. [2] K. Karimi, and M. Sharifi, “DIPC: A System Software Solution for Distributed Programming”, Parallel and Distributed Processing Techniques and Applications Conference (PDPTA'97), Las Vegas, USA, 1997. [3] K. Karimi, and M. Sharifi, “DIPC: The Linux Way of Distributed Programming”, The 4th International Linux Conference, Würzburg, Germany, 1997. [4] R. W. Stevens, UNIX Network Programming, Inter Process Communications, Volume II Second Eidtion, Prentice-Hall, 1999. [5] M. Hakim, and J. Jais, “DIPC, A Forgotten Useful Elements”. The 3rd International Conference on Advances in Strategic Technologies. 12 – 14th August 2003, Kuala Lumpur, Malaysia, 2003.