Xin Dong
35 Orient Street
Malden, MA 02148
(617) 849-1556
xindong@ccs.neu.edu
www.ccs.neu.edu/home/xindong
Objective
- I am looking for a Software Engineer/Developer position. I have
particular skills in operating systems, multi-threaded C/C++
programming, memory management optimization and kernel level development, etc.
- Availability:May 1st, 2012.
Education
Ph.D. student, Computer Science, April 2012
Northeastern University, Boston, MA, USA, GPA: 3.94/4.0
M.Sc., Computer Science, March 2003
Shanghai Jiaotong University, Shanghai, CHINA
B.Sc., Mathematics, June 1991
Fudan University, Shanghai, CHINA
Current Research
My Ph.D. research focuses on operating systems, high
performance computing, multi-threading, software parallelization
methods/tools, code rewriting/debugging and parallel algorithms.
The central part of my thesis is a semi-automatic
methodology using source-level transformation for Geant4
multi-threading (Geant4MT http://geant4.cern.ch/support/download\_MT\_proto.shtml).
Techniques used include: • a modified version of
the GNU g++ parser • bisimulation using the DMTCP checkpointing
package • run-time analysis using a SEGFAULT handler and
selective memory protection • a non-standard extension to malloc
for scalable multi-threading
Other topics: • bit-compatible parallelization of ILU(k) preconditioner • fast permutation multiplication in cache
Impact of Geant4MT
- Geant4 is a million-line C++ program for Monte Carlo
simulation. It is used by thousands of high energy physicists to
simulate particle-matter interaction. It is now also widely used in
medical research.
- In 2008, an international meeting was held at CERN to discuss
the crisis in Geant4. The original design was single-threaded, and a
roadmap to many-core computing was needed. My advisor and I were
invited to attend, where my advisor presented my initial work.
- At the most recent Geant4 Collaboration Meeting (2011), one of
the sessions was devoted wholly to my solution, Geant4MT. This is
currently the only multi-threaded solution, and it provides linear
scaling. I also gave a plenary talk in a summary session.
- There is a new release of single-threaded Geant4 every 6 months
and the multi-threaded version must be kept in sync. Makoto Asai
(SLAC, leader of the international Geant4 Collaboration) has
recently hired a post-doc in part to support Geant4MT.
Publications
- A Bit-Compatible Parallelization for ILU(k) Preconditioning.
Xin Dong and Gene Cooperman.
17th International Euro-Par Conference (Euro-Par 2011-Parallel Processing)
Bordeaux, France. pp. 66-77, August, 2011.
- Multi-threaded Geant4: Semi-automatic Transformation into Scalable Thread-Parallel Software.
Xin Dong, Gene Cooperman and John Apostolakis.
16th International Euro-Par Conference (Euro-Par 2010-Parallel Processing)
Ischia - Naples, Italy. pp. 287-303, August, 2010.
- Fast Multiplication of Large Permutations for Disk, Flash Memory and RAM.
Vlad Slavici, Xin Dong, Daniel Kunkle and Gene Cooperman.
35th International Symposium on Symbolic and Algebraic Computation (ISSAC 2010)
Munich, Germany. pp. 355-362, July, 2010.
Work Experience
Summer Internships
- Software Engineer, Oak Ridge National Laboratory (ORNL),
Summer 2011
Multi-threading, debugging and performance
profiling tools on supercomputers such as CRAY-XT5 and IBM
BG/P
- Software Engineer, European Organization for Nuclear
Research (CERN), Summer 2010
R&D: Multi-threading for
Geant4, version 9.3. Testing, engineering and release plan
- Software Engineer, European Organization for Nuclear
Research (CERN), Summer 2009
R&D: Multi-threading for
Geant4, version 9.2. Performance bottleneck analysis
- Software Engineer, European Organization for Nuclear
Research (CERN), Summer 2008
R&D: Multi-threading for
Geant4, version 9.1 with geometric object sharing
Full-time Positions
- Software Engineer, Distributed Computation Technology Center, Shanghai, Sep 2000-Aug 2005
- SUPRENOC, an application built on HP OpenView to process
alarm messages from various kind of network equipment. We
implemented a system to fetch messages from an application based on
OpenView (C/C++) and transfer them to a JRULER engine (JAVA). These
messages fire the JRULER engine to activate the user-defined
processing. The JRULER engine also subscribes messages from an
application server (Weblogic). The final results generated by the
JRULER engine are written back into the OpenView application.
- 3G Portal, a BEA Tuxedo based backbone and a web based
interface for both vendors and consumers
- CDMA 3G CORBA Interface, a product consistent with one
of CHINA TELECOM specifications
- OLTP, a middleware similar to the BEA Tuxedo. This
product has three subsystems for transaction processing,
communication processing and data accessing respectively. I
implemented a web based system to manage OLTP, which includes a JAVA
applet, a lightweight webserver (C/C++) and a server-end application
(C/C++).
- Application Delivery System, an implementation for JNLP
- Software Engineer, Acetech Pte., Singapore, Apr 2000-Aug
2000
- XML parser (Visual C++ and MS SQL server), a program
implemented as a Windows system service to download a XML
document and update to a local database
- National serviceman administration system (PowerBuilder
and Oracle)
- Computer Chief, Wireless Branch of ZTE Corp., Shanghai,
Mar 1998-Mar 2000
- Measurement equipment management system (PowerBuilder,
Visual C/C++, MS SQL server and Lotus Notes Domino
Server), a system to manage checking, accepting, using and
calibrating for measurement equipment
- Software Engineer, Pudong Software Park, Shanghai, Jul
1991-Feb 1999
- Social security system (PowerBuilder and Sybase), a
two-layer system includes a distributed system that consists of
several districts and a center; and a web based system to publish
the social service information
- Hotel system (FoxPro and Novell network), a front end
that includes check-in, check-out, restaurant service and grocery
store service; and a back end that includes human resource, finance
and office
- General accounting system with a C implementation and a
FoxPro implementation
Programming Skills
- Programming Languages: C/C++, X86 Assembly, Java, Python, Perl, PowerBuilder, Foxpro
- Web Technologies: Apache Server, HTML, JavaScript, XML, SOAP, WSDL , UDDI
- Databases: MySQL, Oracle, MS SQL Server, Sybase
- Operating Systems: Linux/UNIX, Windows
- Distributed/Parallel Computing: POSIX Threads, MPI, CORBA, J2EE, JNLP, RMI, .NET, Lotus Domino Server, BEA Tuxedo, HP OpenView
- Others: GDB, Totalview, Pfmon, Valgrind, VMware, IPython, SAGE, MATLAB, VMGL, SCIRun
Invited Workshop Presentations
Honors and Awards
- Excellent graduate student, 2003, China
- Nokia graduate scholarship, 2001, China
- Excellent undergraduate student, 1991, China
- Second prize in the 4th Mathematics Summer Camp Contest for Undergraduate Students, 1989, China
- Second prize in National Physics Contest for Senior High-School Students, 1987, China
- First prize in National Mathematics Contest for Senior High-School Students, 1986, China