Saleh Elmohamed 111 College Place, CST Bldg NPAC, Rm 3-217 Syracuse, NY 13244-4100 email: saleh@npac.syr.edu Telephone: (315) 443-1073 Fax: (315) 443-1973 Career Objectives ----------------- Interested in opportunities in software architecture, high performance hardware/software architecture, statistical modeling and simulation, and large scale optimization of problems in resource allocation, network design, bin packing and circuit placement. Looking forward to join a group of highly motivated and intelligent researchers/developers to work on building actual software/hardware products not just writing research papers. I enjoy the hands-on building and coding as much as researching about the product. Education --------- Bachelor of Science in Mathematics and Computer Science, Univ. Michigan. Master and PhD of Science in Computer Science, Syracuse. Will be completing my PhD by 8/1999. Areas of Knowledge & Experience ------------------------------- My experience spans a number of software and hardware areas. Here are what I consider my areas of expertise: [A] Software Architecture: 1. Design, implementation, and analysis of process control and scientific software tools and algorithms. 2. Design and implementation of graph-based software tools for real-time data filtering and analysis. 3. Design and implementation of Java-based scientific software tools for distance education on collaboratory systems. 4. Optimization-based software tools. [B] Distributed Computing: This includes parallelism and its principles of granularity, locality, load balance, coordination and synchronization, and performance modeling. My work in this area focuses on: shared-memory (centralized) and shared-memory (distributed or message passing) models. The shared-memory model is the most interesting but also the most complex to deal with due mainly to issues of cache coherence, memory consistency, locking, atomic exchanges, and nonuniform memory access. Cache coherence and its protocols of snooping, directory-based and false sharing are essential and of relevance on how we go about handling locking in, for example, shared-disk database systems. Also, this is important since commercial systems -mainly DBS- typically make heavy use of a central pool of shared memory called the database cache, which all processors access and update. Figuring out how to deal with a centrally used, large chunk of data is quite a complex issue. Other issues of interest is cache cross-interrogation problem. It is that on bus-based SMPs inter-cache traffic can become the dominant use of a snoopy bus, exceeding cache-to-memory traffic and becoming the primary system performance limitation. http://nhse.npac.syr.edu/hpccsurvey/architecture/ [C] Large-scale Collaborative Systems: Involving net-based collaborative systems of community of agents. For this we make use of our knowledge in message passing interfaces and active messages used for distributed (memory) systems. I have worked on a Java-based collaboration model that is currently used for distance education. http://www.npac.syr.edu/tango/ [D] Combinatorial optimization methods: Dealing with complex problems of routing and scheduling, network design, and facilities location. Since there are no exact algorithms to deal effectively with these kind of problems, approximation algorithms are a good alternative. We have used genetic-based optimization algorithms, tabu search (from AI), and annealing-based (from physics) heuristics to tackle large-scale scheduling problems rather successfully. My current research in this area is in the development of hybrid methods that combine approaches: population-based (genetic, ant systems) and local search based (simulated annealing and local search), creating still more effective general purpose solution techniques. Why a hybrid of these two approaches? We know that population-based methods are quite effective in finding regions of the search space that contain solutions of high quality, while local search techniques are quite successful in determining an optimal solution in identified good regions of the search space. Of course a hybrid method won't necessarily simplify the search landscape or the underlying graphs of the problems since it is unclear what properties one should be looking for. The simple issue of size also makes the spacees difficult to study. We know that for problems embedded in a Euclidean space, it is possible to take a "slice" through the space, and reason about the whole landscape from this cross-section. For the sort of problems where a state is a permutation or a vertex of a hypercube rather than a point in R^n, there is no "direction", which rules out this slicing strategy. Hence our research and interest in the problem. As well as experience in: 1. Parallel compiler runtimes. http://www.npac.syr.edu/projects/pcrc/ 2. Database systems -- Oracle8, DB2; Algorithms for data mining applications for e-commerce, etc. 3. Java & related technologies, such as EJB, and the use of CORBA services for scientific and engineering applications. 4. Distributed Object Protocols such as CORBA's IIOP. Software/Hardware Systems and Languages --------------------------------------- 1. Programming Skills: Quite proficient in C, Java (since 96), Lisp, Prolog, Smalltalk, Fortran, C++, Modula-3, SQL, and (CGI/Perl). Parallel programming tools: MPI and PVM. Current work using: C/C++ - Java - Perl (for preprocessing data, etc.) ** My language of preference is Java. 2. OS knowledge and experience in: Unix, Solaris, Linux, VMS, IRIX, and NT. Current work: development on Solaris, NT, and Linux. 3. Hardware systems experience in: SUN UltraSparcs and Servers, HP Stations, SGI Origin 2000, SGI Power Challenge, IBM SP-2, Intel Paragon, Cray T3E/T3D, Compaq-DEC stations, PCs, and Macs. Current work uses Clusters of SUNs, and a host of Linux/NT-based PCs. Related Work and Experience --------------------------- [A] Systems and Software Engineer at BP-Aramco-Texaco, London and Dubai. 1984 - 1987, and on part-time bases from 1987 till 1992. 1. With the Software Engineering Division: Work involved design and implementation of process control and data analysis and filtering software tools. 2. With the Database Division: Here my work mainly involved with tuning and performance analysis of DBS, mostly IBM's. [B] Title: Development/Research Scientist Organization: Northeast Parallel Architectures Center, Syracuse, NY. Date: 1994 till now. 1. Worked on High Performance Computing using MPI and Java/MPI on clusters of NT-based and Sun workstations. 2. Worked on designing a virtual programming laboratory (VPL) for programming in Java, Java/MPI, C/MPI, on a network of workstations (SUN, Compaq-DEC, HP). Currently part of NPAC web-based distance education efforts, using a cluster of Sun Servers. http://www.npac.syr.edu/Education/Courses/CPS615/ Coded in Java, JavaScript, CGI/Perl 3. Designed and successfully implemented scheduling and timetabling for Syracuse University using optimization-based methods such as simulated annealing, mean field, TS, genetic algorithms and rule-based approaches. Currently using Similar approaches for data mining, detection of credit card fraud, and resource allocation. Code used: C/C++ and Perl for processing the data. 4. Working on Java-based tools for collaborative computing. Mainly systems for application sharing, conferencing, scheduling, and distance learning. http://www.javagrande.org http://www.npac.syr.edu/tango/ http://www.npac.syr.edu/projects/tutorials/JavaCSE/ 5. Fall 1996, 1997, and 1998 co-taught, with Geoffrey Fox, Computational Science for Simulation Applications and Parallel Computing. http://www.npac.syr.edu/Education/Courses/CPS615/ http://www.npac.syr.edu/users/saleh/homepage/PDC/ notes-on-PDC/notes-on-PDC.html As well as distributed information systems: http://www.npac.syr.edu/projects/cps606spring98/ Code used: C/C++ and MPI, Java + MPI. 6. Working on Computational Methods for Distributed Information Systems, using Java-related technologies, among others. http://www.javagrande.org http://www.npac.syr.edu/projects/tutorials/JavaCSE/ Code used: Java. 7. Database Systems and JDBC on the Java side. 8. Working on coupling message-passing & other programming tools with Java for distributed and parallel computing. http://www.npac.syr.edu/projects/pcrc/index.html 9. Working on hardware resources and software tools for NHSE. http://nhse.npac.syr.edu http://www.nhse.org Languages and Communication Skills ---------------------------------- Have an excellent command of the English language as well as few others. Sample of Recent Reports ------------------------ 1. S. Elmohamed and G. Fox, Integration of Java-based Scientific Tools for Education with the Collaboratory System (Tango): Case study of Fluid Flow and Monte Carlo Simulation. (To appear in Journal of Physics C) ** MPI/Java demos of the Fluid Flow software were given at Supercomputing 1997 in San Jose and Supercomputing 1998 in Orlando, by our colleague Bryan Carpenter. http://www.npac.syr.edu/projects/pcrc/index.html 2. S. Elmohamed and G. Fox, Some issues of reducibility and equivalence in feedforward neural networks. (Revised 1999, submitted to IEEE Trans. on Neural Nets.) 3. S. Elmohamed, G. Fox, and P. Coddington, Optimization Networks and Annealing for scheduling on a cluster of workstations, NPAC Tech Report, Syracuse University, 1997. (Revised 1999, submitted to Journal of Physics C) 4. S. Elmohamed, G. C. Fox, and P. Coddington, A Comparison of Annealing Techniques for Academic Course Scheduling, Springer-Verlag Lecture Notes in Computer Science, Volume 1408, 1998. Other Online Work ----------------- That I have worked on and some is work in progress. 1. Parallel software/hardware for the NHSE: http://www.nhse.org http://nhse.npac.syr.edu/hpccsurvey/ http://nhse.npac.syr.edu/hpccgloss/ http://nhse.npac.syr.edu/hpccsurvey/architecture/ 2. CD-ROM materials for the US Army Corps of Eng. (CEWES) http://osprey6.npac.syr.edu:8080/ and http://www.wes.hpc.mil/pet/CEWES/CEWES_frame.html 3. Collaborative systems for distance education, and command & control problems. http://www.npac.syr.edu/tango/ Few References -------------- 1. My boss and the first to be contacted: Professor Geoffrey C. Fox, Director, NPAC, 111 college place, CST Bldg, Rm 3-217, Syracuse, NY 13244-4100. phone: 315-443-2163 email: gcf@npac.syr.edu 2. Dr. Paul D. Coddington, Department of Computer Science, University of Adelaide, Adelaide, SA 5005, Australia. email: paulc@cs.adelaide.edu.au 3. Professor Ernest Sibert, Engineering and Computer Science, 111 College Place, CST Bldg, Rm 2-120, Syracuse, NY 13244. phone: 315-443-3110 email: eesibert@top.cis.syr.edu 4. Dr. Bryan Carpenter, Senior Research Scientist, NPAC, 111 College Place, CST Bldg, Rm 3-217, Syracuse, NY 13244-4100. phone: 315-443-5068 email: dbc@npac.syr.edu 5. Dr. Nancy McCracken, Engineering and Computer Science, Syracuse University, 111 College Place, CST Bldg, Syracuse, NY 13244. phone: 315-443-4687 email: njm@npac.syr.edu Work Location, etc. ------------------- - Quite eager to relocate to other regions. Visa status ----------- - I do have work authorization. - Starting date: August 99.