@article {43054,
	title = {A cell-based framework for modeling cardiac mechanics},
	journal = {Biomechanics and Modeling in Mechanobiology},
	volume = {10101010},
	year = {2023},
	month = {01/2023},
	publisher = { Springer},
	keywords = {Cardiac Mechanics, cardiomyocyte contraction, cell geometries, intracellular and extracellular mechanics, microscale modeling},
	issn = {1617-7959},
	doi = {10.1007/s10237-022-01660-8},
	url = {https://link.springer.com/article/10.1007/s10237-022-01660-8},
	author = {Telle, {\r A}shild and James D. {Trotter} and Cai, Xing and Finsberg, Henrik and Kuchta, Miroslav and Sundnes, Joakim and Wall, Samuel}
}
@article {43210,
	title = {Detailed Modeling of Heterogeneous and Contention-Constrained Point-to-Point MPI Communication},
	journal = {IEEE Transactions on Parallel and Distributed Systems},
	volume = {34},
	year = {2023},
	month = {03/2023},
	pages = {1580 - 1593},
	publisher = {IEEE},
	abstract = {The network topology of modern parallel computing systems is inherently heterogeneous, with a variety of latency and bandwidth values. Moreover, contention for the bandwidth can exist on different levels when many processes communicate with each other. Many-pair, point-to-point MPI communication is thus characterized by heterogeneity and contention, even on a cluster of homogeneous multicore CPU nodes. To get a detailed understanding of the individual communication cost per MPI process, we propose a new modeling methodology that incorporates both heterogeneity and contention. First, we improve the standard max-rate model to better quantify the actually achievable bandwidth depending on the number of MPI processes in competition. Then, we make a further extension that more detailedly models the bandwidth contention when the competing MPI processes have different numbers of neighbors, with also non-uniform message sizes. Thereafter, we include more flexibility by considering interactions between intra-socket and inter-socket messaging. Through a series of experiments done on different processor architectures, we show that the new heterogeneous and contention-constrained performance models can adequately explain the individual communication cost associated\&nbsp;with each MPI process. The largest test of realistic point-to-point MPI communication involves 8,192 processes and in total 2,744,632 simultaneous messages over 64 dual-socket AMD Epyc Rome compute nodes connected by InfiniBand, for which the overall prediction accuracy achieved is 84\%.},
	issn = {1045-9219},
	doi = {10.1109/TPDS.2023.3253881},
	url = {https://ieeexplore.ieee.org/document/10064025},
	author = {Thune, Andreas and Reinemo, Sven-Arne and Skeie, Tor and Cai, Xing}
}
@article {43185,
	title = {Enabling unstructured-mesh computation on massively tiled AI processors: An example of accelerating in silico cardiac simulation},
	journal = {Frontiers in Physics},
	volume = {11},
	year = {2023},
	month = {03/2023},
	publisher = {Frontiers},
	abstract = {A new trend in processor architecture design is the packaging of thousands of small processor cores into a single device, where there is no device-level shared memory but each core has its own local memory. Thus, both the work and data of an application code need to be carefully distributed among the small cores, also termed as tiles. In this paper, we investigate how numerical computations that involve unstructured meshes can be efficiently parallelized and executed on a massively tiled architecture. Graphcore IPUs are chosen as the target hardware platform, to which we port an existing monodomain solver that simulates cardiac electrophysiology over realistic 3D irregular heart geometries. There are two computational kernels in this simulator, where a 3D diffusion equation is discretized over an unstructured mesh and numerically approximated by repeatedly executing sparse matrix-vector multiplications (SpMVs), whereas an individual system of ordinary differential equations (ODEs) is explicitly integrated per mesh cell. We demonstrate how a new style of programming that uses Poplar/C++ can be used to port these commonly encountered computational tasks to Graphcore IPUs. In particular, we describe a per-tile data structure that is adapted to facilitate the inter-tile data exchange needed for parallelizing the SpMVs. We also study the achievable performance of the ODE solver that heavily depends on special mathematical functions, as well as their accuracy on Graphcore IPUs. Moreover, topics related to using multiple IPUs and performance analysis are addressed. In addition to demonstrating an impressive level of performance that can be achieved by IPUs for monodomain simulation, we also provide a discussion on the generic theme of parallelizing and executing unstructured-mesh multiphysics computations on massively tiled hardware.},
	keywords = {hardware accelerator, heterogenous computing, irregular meshes, scientific computation, scientific computation on MIMD processors, sparse matrix-vector multiplication (SpMV)},
	issn = {2296-424X},
	doi = {10.3389/fphy.2023.979699},
	url = {https://www.frontiersin.org/articles/10.3389/fphy.2023.979699/full},
	author = {Burchard, Luk and Kristian Gregorius {Hustad} and Langguth, Johannes and Cai, Xing}
}
@article {28251,
	title = {On memory traffic and optimisations for low-order finite element assembly algorithms on multi-core CPUs},
	journal = {ACM Transactions on Mathematical Software},
	volume = {48},
	number = {19},
	year = {2022},
	month = {05/2022},
	pages = {1{\textendash}31},
	publisher = {Association for Computing Machinery (ACM)},
	abstract = {Motivated by the wish to understand the achievable performance of finite element assembly on unstructured computational meshes, we dissect the standard cellwise assembly algorithm into four kernels, two of which are dominated by irregular memory traffic. Several optimisation schemes are studied together with associated lower and upper bounds on the estimated memory traffic volume. Apart from properly reordering the mesh entities, the two most significant optimisations include adopting a lookup table in adding element matrices or vectors to their global counterparts, and using a row-wise assembly algorithm for multi-threaded parallelisation. Rigorous benchmarking shows that, due to the various optimisations, the actual volumes of memory traffic are in many cases very close to the estimated lower bounds. These results confirm the effectiveness of the optimisations, while also providing a recipe for developing efficient software for finite element assembly.},
	issn = {0098-3500},
	doi = {https://doi.org/10.1145/3503925},
	author = {James D. {Trotter} and Cai, Xing and Simon W {Funke}}
}
@misc {42718,
	title = {Modeling cardiac mechanics using a cell-based framework},
	howpublished = {15th World Congress on Computational Mechanics (WCCM-XV), Yokohama, Japan},
	year = {2022},
	publisher = {15th World Congress on Computational Mechanics (WCCM-XV)},
	type = {Contributed},
	abstract = {Cardiac tissue primarily consists of interconnected cardiac cells which contract in a synchronized manner as the heart beats. Most computational models of cardiac tissue, however, homogenize out the individual cells and their surroundings. This approach has been immensely useful for describing cardiac mechanics on an overall level, but gives very limited understanding of the interaction between individual cells and their intermediate surroundings. Several models have been developed for single cells, see e.g. [1, 2]. In this work, we extend the mechanical part of these frameworks to a domain representing multiple cells, allowing us to investigate cell-matrix and cell-cell interactions. We present a mechanical model in which each cell and the extracellular matrix have an explicit geometrical representation, similar to the electrophysiological model presented in [3]. The strain energy functions are defined separately for each of the intracellular and extracellular subdomains, while we assume continuity of displacement and stresses along the membrane. Active tension is only assigned to the intracellular subdomain. For each state, we find an equilibrium solution using the finite element method. We explore passive and active mechanics for a single cell surrounded by an extracellular matrix and for small collections of cells combined into tissue blocks. The explicit geometric representation gives rise to highly varying strain and stress patterns. We show that the extracellular matrix stiffness highly influences the cardiomyocyte stresses during contraction. Through large-scale simulations enabled by high-performance computing, we also demonstrate that our model can be scaled to small collections of cells, resembling small cardiac tissue samples.

[1] Tracqui, T. and Ohayon, J. An integrated formulation of anisotropic force{\textendash}calcium relations driving spatio-temporal contractions of cardiac myocytes. Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences (2009).
[2] Ruiz-Baier, R. Gizzi, A., Rossi, S. Cherubini, C. Laadhari, A. Filippi, S. and Quarteroni, A. Mathematical modelling of active contraction in isolated cardiomyocytes. Mathematical Medicine and Biology (2014).
[3] Tveito, A., J{\ae}ger, KH. Kuchta, M. Mardal, K-A. and Rognes, ME. A cell-based framework for numerical modeling of electrical conduction in cardiac tissue. Frontiers in Physics (2017).
\end{thebibliography}
},
	keywords = {cardiomyocyte contraction, cell-based geometries, intracellular and extracellular mechanics, microscale cardiac mechanics},
	url = {https://prezi.com/view/uGIK0kQvrZ6G1CNOkc73/},
	author = {Telle, {\r A}shild and James D. {Trotter} and Cai, Xing and Kuchta, Miroslav and Finsberg, Henrik and Sundnes, Joakim and Wall, Samuel}
}
@article {10.3389/fphys.2022.904648,
	title = {Resource-efficient use of modern processor architectures for numerically solving cardiac ionic cell models},
	journal = {Frontiers in Physiology},
	volume = {13},
	year = {2022},
	month = {06/2022},
	publisher = {Frontiers},
	abstract = {A central component in simulating cardiac electrophysiology is the numerical solution of nonlinear ordinary differential equations, also called cardiac ionic cell models, that describe cross-cell-membrane ion transport. Biophysically detailed cell models often require a considerable amount of computation, including calls to special mathematical functions. This paper systematically studies how to efficiently use modern multicore CPUs for this costly computational task. We start by investigating the code restructurings needed to effectively enable compiler- supported SIMD vectorisation, which is the most important performance booster in this context. It is found that suitable OpenMP directives are sufficient for achieving both vectorisation and parallelisation. We then continue with an evaluation of the performance optimisation technique of using lookup tables. Due to increased challenges for automated vectorisation, the obtainable benefits of lookup tables are dependent on the hardware platforms chosen. Throughout the study, we report detailed time measurements obtained on Intel Xeon, Xeon Phi, AMD Epyc and two ARM processors including Fujitsu A64FX, while attention is also paid to the impact of SIMD vectorisation and lookup tables on the computational accuracy. As a realistic example, the benefits of performance enhancement are demonstrated by a 10^9-run ensemble on the OakForest-PACS system, where code restructurings and SIMD vectorisation yield an 84\% reduction in computing time, corresponding to 63,270 node hours.},
	issn = {1664-042X},
	doi = {10.3389/fphys.2022.904648},
	url = {https://www.frontiersin.org/article/10.3389/fphys.2022.904648},
	author = {Kristian Gregorius {Hustad} and Cai, Xing}
}
@misc {27775,
	title = {Automated Code Generation for GPU-Based Finite Element Computations in FEniCS},
	year = {2021},
	month = {03/2021},
	publisher = {SIAM},
	address = {SIAM Conference on Computational Science and Engineering (CSE21)},
	abstract = {Developing high-performance finite element codes normally requires hand-crafting and fine tuning of computational kernels, which is not an easy task to carry out for each and every problem. Automated code generation has proved to be a highly productive alternative for frameworks like FEniCS, where a compiler is used to automatically generate suitable kernels from high-level mathematical descriptions of finite element problems. This strategy has so far enabled users to develop and run a variety of high-performance finite element solvers on clusters of multicore CPUs. We have recently enhanced FEniCS with GPU acceleration by enabling its internal compiler to generate CUDA kernels that are needed to offload finite element calculations to GPUs, particularly the assembly of linear systems. This poster presents the results of GPU-accelerating FEniCS and explores performance characteristics of auto-generated CUDA kernels and GPU-based assembly of linear systems for finite element methods.},
	author = {James D. {Trotter} and Langguth, Johannes and Cai, Xing}
}
@article {27658,
	title = {Efficient numerical solution of the EMI model representing the extracellular space (E), cell membrane (M) and intracellular space (I) of a collection of cardiac cells},
	journal = {Frontiers in Physics},
	volume = {8},
	year = {2021},
	pages = {579461},
	publisher = {Frontiers},
	abstract = {The EMI model represents excitable cells in a more accurate manner than traditional homogenized models at the price of increased computational complexity. The increased complexity of solving the EMI model stems from a significant increase in the number of computational nodes and from the form of the linear systems that need to be solved. Here, we will show that the latter problem can be solved by careful use of operator splitting of the spatially coupled equations. By using this method, the linear systems can be broken into sub-problems that are of the classical type of linear, elliptic boundary value problems. Therefore, the vast collection of methods for solving linear, elliptic partial differential equations can be used. We demonstrate that this enables us to solve the systems using shared-memory parallel computers. The computing time scales perfectly with the number of physical cells. For a collection of 512{\texttimes}256 cells, we manage to solve linear systems with about 2.5{\texttimes}10^8 unknows. Since the computational effort scales linearly with the number of physical cells, we believe that larger computers can be used to simulate millions of excitable cells and thus allow careful analysis of physiological systems of great importance.},
	doi = {doi: 10.3389/fphy.2020.579461},
	url = {https://www.frontiersin.org/articles/10.3389/fphy.2020.579461/full},
	author = {Karoline Horgmo {J{\ae}ger} and Kristian Gregorius {Hustad} and Cai, Xing and Tveito, Aslak}
}
@article {27917,
	title = {On the impact of heterogeneity-aware mesh partitioning and non-contributing computation removal on parallel reservoir simulations},
	journal = {Journal of Mathematics in Industry},
	volume = {11},
	year = {2021},
	month = {06/2021},
	publisher = { Springer},
	abstract = {Parallel computations have become standard practice for simulating the complicated multi-phase flow in a petroleum reservoir. Increasingly sophisticated numerical techniques have been developed in this context. During the chase of algorithmic superiority, however, there is a risk of forgetting the ultimate goal, namely, to efficiently simulate real-world reservoirs on realistic parallel hardware platforms. In this paper, we quantitatively analyse the negative performance impact caused by non-contributing computations that are associated with the {\textquotedblleft}ghost computational cells{\textquotedblright} per subdomain, which is an insufficiently studied subject in parallel reservoir simulation. We also show how these non-contributing computations can be avoided by reordering the computational cells of each subdomain, such that the ghost cells are grouped together. Moreover, we propose a new graph-edge weighting scheme that can improve the mesh partitioning quality, aiming at a balance between handling the heterogeneity of geological properties and restricting the communication overhead. To put the study in a realistic setting, we enhance the open-source Flow simulator from the OPM framework, and provide comparisons with industrial-standard simulators for real-world reservoir models.},
	doi = {10.1186/s13362-021-00108-5},
	url = {https://mathematicsinindustry.springeropen.com/articles/10.1186/s13362-021-00108-5},
	author = {Thune, Andreas and Cai, Xing and Alf Birger {Rustad}}
}
@inproceedings {28401,
	title = {iPUG for multiple Graphcore IPUs: Optimizing performance and scalability of parallel breadth-first search},
	journal = {28th IEEE International Conference on High Performance Computing, Data, \& Analytics (HiPC)},
	year = {2021},
	month = {12/2021},
	pages = {162-171},
	publisher = { IEEE},
	address = {Bangalore, India},
	abstract = {Parallel graph algorithms have become one of the principal applications of high-performance computing besides numerical simulations and machine learning workloads. However, due to their highly unstructured nature, graph algorithms remain extremely challenging for most parallel systems, with large gaps between observed performance and theoretical limits. Further-more, most mainstream architectures rely heavily on single instruction multiple data (SIMD) processing for high floating-point rates, which is not beneficial for graph processing which instead requires high memory bandwidth, low memory latency, and efficient processing of unstructured data. On the other hand, we are currently observing an explosion of new hardware architectures, many of which are adapted to specific purposes and diverge from traditional designs. A notable example is the Graphcore Intelligence Processing Unit (IPU), which is developed to meet the needs of upcoming machine intelligence applications. Its design eschews the traditional cache hierarchy, relying on SRAM as its main memory instead. The result is an extremely high-bandwidth, low-latency memory at the cost of capacity. In addition, the IPU consists of a large number of independent cores, allowing for true multiple instruction multiple data (MIMD) processing. Together, these features suggest that such a processor is well suited for graph processing. We test the limits of graph processing on multiple IPUs by implementing a low-level, high-performance code for breadth-first search (BFS), following the specifications of Graph500, the most widely used benchmark for parallel graph processing. Despite the simplicity of the BFS algorithm, implementing efficient parallel codes for it has proven to be a challenging task in the past. We show that our implementation scales well on a system with 8 IPUs and attains roughly twice the performance of an equal number of NVIDIA V100 GPUs using state-of-the-art CUDA code.},
	doi = {10.1109/HiPC53243.2021.00030},
	author = {Burchard, Luk and Cai, Xing and Langguth, Johannes}
}
@inbook {27497,
	title = {Operator Splitting and Finite Difference Schemes for Solving the EMI Model},
	booktitle = {Modeling Excitable Tissue: The EMI Framework},
	volume = {7},
	year = {2021},
	pages = {44 - 55},
	publisher = {Springer International Publishing},
	organization = {Springer International Publishing},
	chapter = {4},
	address = {Cham},
	abstract = {We want to be able to perform accurate simulations of a large number of cardiac cells based on mathematical models where each individual cell is represented in the model. This implies that the computational mesh has to have a typical resolution of a few {\textmu}m leading to huge computational challenges. In this paper we use a certain operator splitting of the coupled equations and showthat this leads to systems that can be solved in parallel. This opens up for the possibility of simulating large numbers of coupled cardiac cells.},
	isbn = {978-3-030-61156-9},
	issn = {2512-1677},
	doi = {10.1007/978-3-030-61157-6_4},
	url = {http://link.springer.com/content/pdf/10.1007/978-3-030-61157-6_4},
	author = {Karoline Horgmo {J{\ae}ger} and Kristian Gregorius {Hustad} and Cai, Xing and Tveito, Aslak},
	editor = {Tveito, Aslak and Mardal, Kent-Andre and Marie E. {Rognes}}
}
@article {TROTTER2020189,
	title = {Cache simulation for irregular memory traffic on multi-core CPUs: Case study on performance models for sparse matrix{\textendash}vector multiplication},
	journal = {Journal of Parallel and Distributed Computing},
	volume = {144},
	year = {2020},
	month = {06/2020},
	pages = {189--205},
	publisher = {Elsevier},
	abstract = {Parallel computations with irregular memory access patterns are often limited by the memory subsystems of multi-core CPUs, though it can be difficult to pinpoint and quantify performance bottlenecks precisely. We present a method for estimating volumes of data traffic caused by irregular, parallel computations on multi-core CPUs with memory hierarchies containing both private and shared caches. Further, we describe a performance model based on these estimates that applies to bandwidth-limited computations. As a case study, we consider two standard algorithms for sparse matrix{\textendash}vector multiplication, a widely used, irregular kernel. Using three different multi-core CPU systems and a set of matrices that induce a range of irregular memory access patterns, we demonstrate that our cache simulation combined with the proposed performance model accurately quantifies performance bottlenecks that would not be detected using standard best- or worst-case estimates of the data traffic volume.},
	keywords = {AMD Epyc, Cache simulation, Intel Xeon, Performance model, Sparse matrix{\textendash}vector multiplication},
	issn = {0743-7315},
	doi = {https://doi.org/10.1016/j.jpdc.2020.05.020},
	url = {http://www.sciencedirect.com/science/article/pii/S0743731520302999},
	author = {James D. {Trotter} and Langguth, Johannes and Cai, Xing}
}
@misc {27210,
	title = {Efficient simulations of patient-specific electrical heart activity on the DGX-2},
	year = {2020},
	month = {03/2020},
	publisher = {Nvidia},
	address = {GPU Technology Conference (GTC) 2020, Silicon Valley, USA},
	abstract = {Patients who have suffered a heart attack have an elevated risk of developing arrhythmia. The use of computer simulations of the electrical activity in the hearts of these patients, is emerging as an alternative to traditional, more invasive examinations performed by doctors today. Recent advances in personalised arrhythmia risk prediction show that computational models can provide not only safer but also more accurate results than invasive procedures. However, biophysically accurate simulations of the electrical activity in the heart require solving linear systems over fine meshes and time resolutions, which can take hours or even days. This limits the use of such simulations in the clinic where diagnosis and treatment planning can be time sensitive, even if it is just for the reason of operation schedules. Furthermore, the non-interactive, non-intuitive way of accessing simulations and their results makes it hard to study these collaboratively. Overcoming these limitations requires speeding up computations from hours to seconds, which requires a massive increase in computational capabilities.We have developed a code that is capable of performing highly efficient heart simulations on the DGX-2, making use of all 16 V100 GPUs. Using a patient-specific unstructured tetrahedral mesh with 11.7 million cells, we are able to simulate the electrical heart activity at 1/30 of real-time. Moreover, we are able to show that the throughput achieved using all 16 GPUs in the DGX-2 is 77.6\% of the theoretical maximum.We achieved this through extensive optimisations of the two kernels constituting the body of the main loop in the simulator. In the kernel solving the diffusion equation (governing the spread of the electrical signal), constituting of a sparse matrix-vector multiplication, we minimise the memory traffic by reordering the mesh (and matrix) elements into clusters that fit in the V100{\textquoteright}s L2 cache. In the kernel solving the cell model (describing the complex interactions of ion channels in the cell membrane), we apply sophisticated domain-specific optimisations to reduce the number of floating point operations to the point where the kernel becomes memory bound. After optimisation, both kernels are memory bound, and we derive the minimum memory traffic, which we then divide by the aggregate memory bandwidth to obtain a lower bound on the execution time.Topics discussed include optimisations for sparse matrix-vector multiplications, strategies for handling inter-device communication for unstructured meshes, and lessons we learnt while programming the DGX-2.},
	author = {Kristian Gregorius {Hustad} and Cai, Xing and Langguth, Johannes and Arevalo, Hermenegild}
}
@misc {27737,
	title = {On parallel simulation of porous media flow},
	howpublished = {Schlumberger Eureka Applied Math Special Interest Group Meeting},
	year = {2020},
	type = {Invited guest talk},
	abstract = {Parallel computing has become an indispensable\&nbsp;tool for efficiently\&nbsp;simulating the complicated multi-phase flows in porous media. To achieve good performance, we need to pay special attention to the foundation of parallelization, namely,\&nbsp;how the computation is decomposed among the hardware processing units. The prerequisite mesh-partitioning problem boils down to an intricate interplay among load balance, communication overhead, and effectiveness of the resulting numerical calculation.\&nbsp;Specifically,\&nbsp;we quantitatively analyse the negative performance impact caused by non-contributing computations that are associated with the {\textquoteleft}{\textquoteleft}ghost computational cells" per subdomain.\&nbsp;We also show how these non-contributing computations can be avoided by reordering the computational cells of each subdomain. Moreover, we propose a new graph-edge weighting scheme that can improve the mesh partitioning quality, aiming at a\&nbsp;balance between handling the heterogeneity of geological properties and restricting the communication overhead. The findings are applied to the open-source\&nbsp;Flow\&nbsp;simulator from the OPM framework (https://opm-project.org), leading to substantial improvements of the parallel performance.},
	author = {Cai, Xing}
}
@misc {27565,
	title = {Towards detailed Organ-Scale Simulations in Cardiac Electrophysiology},
	year = {2020},
	type = {Poster},
	address = {GPU Technology Conference (GTC), Silicon Valley, San Jose, USA},
	author = {Langguth, Johannes and Gaur, Namit and Arevalo, Hermenegild and Jarvis, Chad and Altanaite, Neringa and Lan, Qiang and Cai, Xing}
}
@misc {26986,
	title = {Balancing the numerical and parallel performance for reservoir simulations},
	howpublished = {SIAM Conference on Computational Science and Engineering (CSE19), Spokane, Washington, USA},
	year = {2019},
	abstract = {The overall performance of a PDE-based simulator depends on two factors: the algorithmic efficiency of the numerical scheme chosen and the parallel efficiency of the software implementation. Since aspects from the two factors may influence each other{\textquoteright}s performance, a suitable balance between the two is important. The focus of this talk is on the OPM framework of oil reservoir simulation, for which the computational core is to solve the black-oil model: a coupled system of nonlinear PDEs. Due to large variations in the geological properties of a reservoir, the sparse matrix that arises from discretizing the coupled PDEs exhibits a strong heterogeneity in its nonzero values. These reflect the strength of coupling between the degrees of freedom. It is thus necessary to consider this heterogeneity in the unstructured mesh partitioning process, typically translated to partitioning a graph with weighted edges. Particularly, we study the impact of different strategies of edge weighting on both the numerical and parallel performance. The ordering of the degrees of freedom, which also affects both sides, is studied in addition. Our purpose is to shed some light on a suitable mesh partitioning and ordering methodolgy, which is also relevant beyond the context of reservoir simulation. The issue of how to allow users of OPM to inject such flexibility into the existing software framework is also discussed.},
	keywords = {HPC},
	author = {Thune, Andreas and Cai, Xing}
}
@inproceedings {26985,
	title = {Combining algorithmic rethinking and AVX-512 intrinsics for efficient simulation of subcellular calcium signaling},
	journal = {International Conference on Computational Science (ICCS 2019)},
	year = {2019},
	pages = {681-687},
	publisher = { Springer},
	abstract = {Calcium signaling is vital for the contraction of the heart. Physiologically realistic simulation of this subcellular process requires nanometer resolutions and a complicated mathematical model of differential equations. Since the subcellular space is composed of several irregularly-shaped and intricately-connected physiological domains with distinct properties, one particular challenge is to correctly compute the diffusion-induced calcium fluxes between the physiological domains. The common approach is to pre-calculate the effective diffusion coefficients between all pairs of neighboring computational voxels, and store them in large arrays. Such a strategy avoids complicated if-tests when looping through the computational mesh, but suffers from substantial memory overhead. In this paper, we adopt a memory-efficient strategy that uses a small lookup table of diffusion coefficients. The memory footprint and traffic are both drastically reduced, while also avoiding the if-tests. However, the new strategy induces more instructions on the processor level. To offset this potential performance pitfall, we use AVX-512 intrinsics to effectively vectorize the code. Performance measurements on a Knights Landing processor and a quad-socket Skylake server show a clear performance advantage of the manually vectorized implementation that uses lookup tables, over the counterpart using coefficient arrays.},
	doi = {10.1007/978-3-030-22750-0_66},
	author = {Jarvis, Chad and Glenn T. {Lines} and Langguth, Johannes and Nakajima, Kengo and Cai, Xing}
}
@misc {26987,
	title = {Compiling finite element variational forms for GPU-based assembly},
	howpublished = {FEniCS{\textquoteleft}19, Washington DC, USA},
	year = {2019},
	abstract = {We present an experimental form compiler for exploring GPU-based algorithms for assembling vectors, matrices, and higher-order tensors from finite element variational forms.Previous studies by Cecka et al. (2010), Markall et al. (2013), and Reguly and Giles (2015) have explored different strategies for using GPUs for finite element assembly, demonstrating the potential rewards and highlighting some of the difficulties in offloading assembly to a GPU. Even though these studies are limited to a few specific cases, mostly related to the Poisson problem, they already indicate that to achieve high performance, the appropriate assembly strategy depends on the problem at hand and the chosen discretisation.By using a form compiler to automatically generate code for GPU-based assembly, we can explore a range of problems based on different variational forms and finite element discretisations. In this way, we aim to get a better picture of the potential benefits and challenges of assembling finite element variational forms on a GPU. Ultimately, the goal is to explore algorithms based on automated code generation that offload entire finite element methods to a GPU, including assembly of vectors and matrices and solution of linear systems.In this talk, we give an exact characterisation of the class of finite element variational forms supported by our compiler, comprising a small subset of the Unified Form Language that is used by FEniCS and Firedrake. Furthermore, we describe a denotational semantics that explains how expressions in the form language are translated to low-level C or CUDA code for performing assembly over a computational mesh. We also present some initial results and discuss the performance of the generated code.},
	keywords = {Code translation, GPU, HPC},
	author = {James D. {Trotter} and Cai, Xing and Simon W {Funke} and Langguth, Johannes}
}
@misc {26984,
	title = {Heterogeneous computing for cardiac electrophysiology},
	howpublished = {PREAPP workshop on Efficient Frameworks for Compute- and Data-intensive Computing (EFFECT), University of Troms{\o}, Norway},
	year = {2019},
	abstract = {Electrical activities inside the heart are immensely important for the functioning of this vital organ. In the pursuit of a scientific understanding of the processes and mechanisms in electro-physiology, computer\&nbsp;simulations have become an established paradigm of research. Both the complex mathematical models and the extreme\&nbsp;physiological details require huge-scale simulations, which nowadays see an increasing use of heterogeneous computing. That is, the computational power is delivered by more than one\&nbsp;processor type. We will discuss some of the resulting challenges in programming and performance\&nbsp;optimization. Successful applications from the domain of cardiac\&nbsp;electro-physiology will be used to demonstrate\&nbsp;the usefulness of\&nbsp;heterogeneous computing. We will also take a peek into the future of heterogeneous computing through eX3: the brand-new national\&nbsp;infrastructure for experimental exploration of exascale computing.},
	author = {Cai, Xing}
}
@article {26461,
	title = {Performance optimization and modeling of fine-grained irregular communication in UPC},
	journal = {Scientific Programming},
	volume = {2019},
	year = {2019},
	month = {03/2019},
	pages = {Article ID 6825728},
	publisher = {Hindawi},
	abstract = {The UPC programming language offers parallelism via logically partitioned shared\&nbsp;memory, which typically spans physically disjoint memory sub-systems.\&nbsp;One convenient feature of UPC is\&nbsp;its ability to automatically execute between-thread data movement,\&nbsp;such that the entire content of a shared data array appears to be freely\&nbsp;accessible by all the threads. The\&nbsp;programmer friendliness, however, can come at the cost of substantial\&nbsp;performance penalties. This is especially true when indirectly indexing\&nbsp;the elements of a shared array, for which the induced between-thread data\&nbsp;communication can be irregular and have a fine-grained pattern.\&nbsp;In this paper we study performance enhancement strategies specifically targeting\&nbsp;such fine-grained irregular communication in UPC.\&nbsp;Starting from explicit thread privatization,\&nbsp;continuing with block-wise communication, and arriving at message condensing and\&nbsp;consolidation, we obtained considerable performance improvement of UPC\&nbsp;programs that originally require fine-grained irregular communication.\&nbsp;Besides the performance enhancement strategies, the main contribution of the present paper is to propose performance models for the different scenarios, in form of quantifiable formulas that hinge on the actual volumes of\&nbsp;various data movements\&nbsp;plus a small number of easily obtainable hardware characteristic parameters.\&nbsp;These performance models help to verify the enhancements obtained, while also providing insightful predictions of\&nbsp;similar parallel\&nbsp;implementations, not limited to UPC, that also involve between-thread or\&nbsp;between-process irregular communication. As a further validation,\&nbsp;we also apply our performance modeling methodology and hardware\&nbsp;characteristic parameters to an existing UPC code for solving a 2D\&nbsp;heat equation on a uniform mesh.},
	keywords = {Fine-grained irregular communication, performance modeling, Performance optimization, Sparse matrix-vector multiplication, UPC programming language},
	doi = {https://doi.org/10.1155/2019/6825728},
	url = {https://www.hindawi.com/journals/sp/2019/6825728/},
	author = {Lagravi{\`e}re, J{\'e}r{\'e}mie and Langguth, Johannes and Prugger, Martina and Einkemmer, Lukas and Phuong H. {Ha} and Cai, Xing}
}
@inproceedings {27195,
	title = {Towards Detailed Real-Time Simulations of Cardiac Arrhythmia},
	journal = {Computing in Cardiology},
	volume = {46},
	year = {2019},
	month = {12/2019},
	publisher = {IEEE},
	abstract = {Recent advances in personalized arrhythmia risk pre- diction show that computational models can provide not only safer but also more accurate results than invasive pro- cedures. However, biophysically accurate simulations re- quire solving linear systems over fine meshes and time res- olutions, which can take hours or even days. This limits the use of such simulations in the clinic where diagnosis and treatment planning can be time sensitive, even if it is just for the reason of operation schedules. Furthermore, the non-interactive, non-intuitive way of accessing simula- tions and their results makes it hard to study these collab- oratively. Overcoming these limitations requires speeding up computations from hours to seconds, which requires a massive increase in computational capabilities.Fortunately, the cost of computing has fallen dramati- cally in the past decade. A prominent reason for this is the recent introduction of manycore processors such as GPUs, which by now power the majority of the world{\textquoteright}s leading supercomputers. These devices owe their success to the fact that they are optimized for massively parallel work- loads, such as applying similar ODE kernel computations to millions of mesh elements in scientific computing ap- plications. Unlike CPUs, which are typically optimized for sequential performance, this allows GPU architectures to dedicate more transistors to performing computations, thereby increasing parallel speed and energy efficiency.},
	author = {Langguth, Johannes and Arevalo, Hermenegild and Cai, Xing}
}
@misc {26853,
	title = {Towards Detailed Real-Time Simulations of Cardiac Arrhythmia},
	year = {2019},
	month = {09/2019},
	address = { International Conference in Computing in Cardiology, Singapore},
	abstract = {Recent advances in personalized arrhythmia risk prediction show that computational models can provide not only safer but also more accurate results than invasive procedures.\&nbsp; However, biophysically accurate simulations require solving linear systems over fine meshes and time resolutions, which can take hours or even days. This limits the use of such simulations in the clinic where diagnosis and treatment planning can be time sensitive, even if it is just for the reason of operation schedules. Furthermore, the non-interactive, non-intuitive way of accessing simulations and their results makes it hard to study these collaboratively.Overcoming these limitations requires speeding up computations from hours to seconds, which requires a massive increase in computational capabilities.Fortunately, the cost of computing has fallen dramatically in the past decade. A prominent reason for this is the recent introduction of manycore processors such as GPUs, which by now power the majority of the world{\textquoteright}s leading supercomputers. These devices owe their success to the fact that they are optimized for massively parallel workloads, such as applying similar ODE kernel computations to millions of mesh elements in scientific computing applications. Unlike CPUs, which are typically optimized for sequential performance, this allows GPU architectures to dedicate more transistors to performing computations, thereby increasing parallel speed and energy efficiency.In this poster, we present ongoing work on the parallelization of finite volume computations over an unstructured mesh as well as the challenges involved in building scalable simulation codes and discuss the steps needed to close the gap to accurate real-time computations.\&nbsp;},
	author = {Langguth, Johannes and Arevalo, Hermenegild and Kristian Gregorius {Hustad} and Cai, Xing}
}
@misc {26983,
	title = {Unstructured computational meshes and data locality},
	howpublished = {Fifth Workshop on Programming Abstractions for Data Locality (PADAL{\textquoteright}19), Inria Bordeaux, France},
	year = {2019},
	abstract = {Many scientific and engineering applications rely on unstructured computational meshes to capture the irregular shapes and intricate details involved. With respect to software implementation,\&nbsp;unstructured meshes require indirectly-indexed, irregular accesses to data arrays. Attaining data locality in the memory hierarchy is thus challenging. This talk touches two related topics. First, we look at the ordering/clustering of entities in an unstructured mesh with respect to cache efficiency. Second, we re-examine the currently widely-used strategy of mesh partitioning, which is based on partitioning a corresponding graph with edge-cut as the optimisation objective. Mismatches between this mainstream methodology of data decomposition and the increasingly heterogeneous computing platforms will be discussed.},
	keywords = {data locality, HPC},
	author = {Cai, Xing}
}
@misc {27738,
	title = {Use of modern processor architectures for computing the electrical activity in the heart},
	howpublished = {Schlumberger Eureka Applied Math Special Interest Group Meeting},
	year = {2019},
	type = {Invited guest talk},
	abstract = {Recent advances in the mathematical models of electro-cardiology have prompted new requirements for computation. The computational\&nbsp;challenges span from a detailed simulation of\&nbsp;subcellular calcium handling,\&nbsp;through a proper cell-tissue coupling, to a whole heart\&nbsp;modeled on an\&nbsp;unstructured computational mesh. The sheer size of the computation often can only be satisfied by cutting-edge computer clusters, where the main computing power is\&nbsp;provided by non-conventional processors (also called accelerators), such as GPUs or\&nbsp;many core processors. In this talk, we discuss the related issues of programming and performance engineering. The\&nbsp;particular topics include CPU-accelerator computing, memory traffic\&nbsp;minimization, and code\&nbsp;vectorization.},
	author = {Cai, Xing}
}
@misc {26360,
	title = {Education in HPC and Data Science at Simula Research Lab and UiO},
	howpublished = {SUPERDATA Workshop on curriculum development, Yunan, China},
	year = {2018},
	author = {Cai, Xing}
}
@misc {26358,
	title = {Heterogeneous Computing: Programming, Performance and Applications},
	howpublished = {CoSaS 2018 Symposium, Erlangen, Germany},
	year = {2018},
	type = {Invited keynote talk},
	author = {Cai, Xing}
}
@inproceedings {26132,
	title = {Memory Bandwidth Contention: Communication vs Computation Tradeoffs in Supercomputers with Multicore Architectures},
	journal = {International Conference on Parallel and Distributed Systems (ICPADS)},
	year = {2018},
	publisher = {ACM/IEEE},
	address = {Singapore},
	abstract = {We study the problem of contention for memory bandwidth between computation and communication in supercomputers that feature multicore CPUs. The problem arises when communication and computation are overlapped, and both operations compete for the same memory bandwidth. This contention is most visible at the limits of scalability, when communication and computation take similar amounts of time, and thus must be taken into account in order to reach maximum scalability in memory bandwidth bound applications. Typical examples of codes affected by the memory bandwidth contention problem are sparse matrix-vector computations, graph algorithms, and many machine learning problems, as they typically exhibit a high demand for both memory bandwidth and inter-node communication, while performing a relatively low number of arithmetic operations.

The problem is even more relevant in truly heterogeneous computations where CPUs and accelerators are used in concert. In that case it can lead to mispredictions of expected performance and consequently to suboptimal load balancing between CPU and accelerator, which in turn can lead to idling of powerful accelerators and thus to a large decrease in performance.

We propose a simple benchmark in order to quantify the loss of performance due to memory bandwidth contention. Based on that, we derive a theoretical model to determine the impact of the phenomenon on parallel memory-bound applications. We test the model on scientific computations, discuss the practical relevance of the problem and suggest possible techniques to remedy it.},
	keywords = {Hybrid MPI/OpenMP, Memory bandwidth contention, Multicore supercomputers, performance modeling, Scientific Computing},
	author = {Langguth, Johannes and Sourouri, Mohammed and Cai, Xing},
	editor = {Zou, Yongpan}
}
@misc {26157,
	title = {Quantifying data traffic of sparse matrix-vector multiplication in a multi-level memory hierarchy},
	year = {2018},
	month = {06/2018},
	address = {London, UK},
	abstract = {Sparse matrix-vector multiplication (SpMV) is the central operation in an iterative linear solver. On a computer with a multi-level memory hierarchy, SpMV performance is limited by memory or cache bandwidth. Furthermore, for a given sparse matrix, the volume of data traffic depends on the location of the matrix non-zeros. By estimating the volume of data traffic with Aho, Denning and Ullman{\textquoteright}s page replacement model [1], we can locate bottlenecks in the memory hierarchy and evaluate optimizations such as matrix reordering. The model is evaluated by comparing with measurements from hardware performance counters on Intel Sandy Bridge.[1]: Alfred V. Aho, Peter J. Denning, and Jeffrey D. Ullman. 1971. Principles of Optimal Page Replacement. J. ACM 18, 1 (January 1971), pp. 80-93.},
	author = {James D. {Trotter} and Langguth, Johannes and Cai, Xing}
}
@misc {26131,
	title = {Towards Detailed Organ-Scale Simulations in Cardiac Electrophysiology},
	year = {2018},
	month = {09/2018},
	type = {Poster},
	address = {International Symposium on Computational Science at Scale (CoSaS), Erlangen, Germany},
	abstract = {We present implementations of tissue-scale 3D simulations of the human cardiac ventricle using a physiologically realistic cell model. Computational challenges in such simulations arise from two factors, the\&nbsp; first of which is the sheer amount of computation when simulating a large number of cardiac cells in a detailed model containing 10^4 calcium release units, 10^6 stochastically changing ryanodine receptors and 1.5 {\texttimes} 10^5 L-type calcium channels per cell.Additional challenges arise from the fact that the computational tasks have various levels of arithmetic intensity and control complexity, which require careful adaptation of the simulation code to the target device. By exploiting the strengths of GPUs and manycore accelerators, we obtain a performance that is far superior to that of the basic CPU implementation, thus paving the way for detailed whole-heart simulations in future generations of leadership class supercomputers.},
	keywords = {Cardiac electrophysiology, GPU, Scientific Computing, Xeon Phi},
	author = {Langguth, Johannes and Arevalo, Hermenegild and Jarvis, Chad and Cai, Xing}
}
@misc {26359,
	title = {Unstructured mesh partitioning in the presence of strong coefficient heterogeneity},
	howpublished = {PDESoft 2018 Conference, Bergen, Norway},
	year = {2018},
	abstract = {Mesh partitioning is the first step in enabling parallel computation\&nbsp;for solving PDEs. For an unstructured computational mesh, the\&nbsp;task of partitioning is nontrivial, which can be\&nbsp;formulated as an optimization problem with two goals. The first\&nbsp;goal is load balancing, i.e.,\&nbsp;dividing\&nbsp;the computational work evenly among the subdomains.\&nbsp;The second goal is communication overhead minimization,\&nbsp;i.e.,\&nbsp;limiting the subsequent inter-subdomain communication.\&nbsp;Traditionally, an unstructured mesh is translated to a graph before partitioning,\&nbsp;where the graph{\textquoteright}s nodes correspond to the mesh entities and the\&nbsp;edges reflect the direct couplings between\&nbsp;mesh entities.In the presence of strong coefficient heterogeneity in a PDE, the\&nbsp;coupling between the degrees of freedom (e.g.,\&nbsp;the nonzero values in\&nbsp;a linear system arisen from the discretization) will also exhibit strong heterogeneity. It is numerically beneficial to group the\&nbsp;degrees of freedom that have strong in-between couplings in the same\&nbsp;subdomain, whereas the weaker couplings are prioritized as\&nbsp;places for the separation cuts between subdomains. This is achieved by\&nbsp;heterogeneously weighting the edges of the graph, which is then\&nbsp;partitioned by a graph partitioning algorithm that almost exclusively\&nbsp;aims to minimize the so-called edge cut\&nbsp;(sum of weights of all\&nbsp;the cut-through edges).Such an approach requires care, because an over-weighting of edges that\&nbsp;represent strong couplings may result in too few {\textquoteleft}{\textquoteleft}light-weight{\textquoteright}{\textquoteright} edges that can be\&nbsp;candidates for cut between subdomains. This may again lead to\&nbsp;bad partitioning results where e.g.,\&nbsp;a subdomain consists of several\&nbsp;disjoint patches. An accompanying weakness is that the associated edge-cut value\&nbsp;no longer\&nbsp;bears resemblance to the true communication overhead that will arise in\&nbsp;the parallel solution process of the PDE.This talk will report the results of ongoing work on investigating the\&nbsp;weaknesses of the edge-cut-oriented graph partitoning strategy in the\&nbsp;presence of strong\&nbsp;coefficient heterogeneity. We will use concrete examples from reservoir\&nbsp;simulations that involve strong disparity in key geological\&nbsp;coefficients.\&nbsp;Moreover, we aim to experiment with possible improvements to the\&nbsp;current graph partitioning paradigm by giving less emphasis to\&nbsp;edge cut while incorporating a new metric that better resembles the\&nbsp;overhead of inter-subdomain communication.},
	author = {Thune, Andreas and Cai, Xing}
}
@misc {25802,
	title = {Accelerated high-performance computing for computational cardiac electrophysiology},
	howpublished = {The University of Tokyo, Tokyo, Japan},
	year = {2017},
	note = {2nd International Symposium on Research and Education of Computational Science},
	abstract = {Massively parallel hardware accelerators, such as GPUs, are nowadays prevalent in the HPC hardware landscape. While having tremendous computing power, these accelerators also bring programming challenges. Often, a different programming standard applies for the accelerators than that for the conventional CPUs. For computing clusters that consist of both accelerators and CPUs, where the latter are hosts of the accelerators, elaborate hybrid parallel programming is needed to ensure an efficient use of the heterogeneous hardware. 

This talk aims to share some experiences of implementing computational science software for heterogeneous computing platforms. We look at two scenarios: CPU+GPU [1] and CPU+Xeon Phi [2][3] heterogeneous computing. Common for both scenarios is the necessity of a proper pipelining of the involved computational and communication tasks, such that the overhead of various data movements can be reduced or completely masked. Moreover, suitable multi-threading with thread divergence is needed on the CPU host side. This is for enforcing computation-communication overlap, coordinating the accelerators, and allowing the CPU hosts to also contribute with their computing power. We have successfully applied hybrid CPU+Knights Corner co-processor computing [2][3] to two topics of computational cardiac electrophysiology, making use of the Tianhe-2 supercomputer. Results [4] about using the new Xeon Phi Knights Landing processor will also be presented.

 [1]. J. Langguth, M. Sourouri, G. T. Lines, S. B. Baden, and X. Cai. Scalable heterogeneous CPU-GPU computations for unstructured tetrahedral meshes. IEEE Micro, 35(4):6{\textendash}15, 2015.
 [2]. J. Chai, J. Hake, N. Wu, M. Wen, X. Cai, G. T. Lines, J. Yang, H. Su, C. Zhang, and X. Liao. Towards simulation of subcellular calcium dynamics at nanometre resolution. International Journal of High Performance Computing Applications, 29(1):51{\textendash}63, 2015. 
 [3]. J. Langguth, Q. Lan, N. Gaur, and X. Cai. Accelerating detailed tissue-scale 3D cardiac simulations using heterogeneous CPU-Xeon Phi computing. International Journal of Parallel Programming, 45(5):1236{\textendash}1258, 2017.
 [4]. J. Langguth, C. Jarvis, and X. Cai. Porting tissue-scale cardiac simulations to the Knights Landing platform. Proceedings of ISC High Performance 2017, 376{\textendash}388, 2017.},
	author = {Cai, Xing and Langguth, Johannes}
}
@inproceedings {25801,
	title = {Automated Translation of MATLAB Code to C++ with Performance and Traceability},
	journal = {The Eleventh International Conference on Advanced Engineering Computing and Applications in Sciences (ADVCOMP 2017)},
	year = {2017},
	month = {11/2017},
	pages = {50-55},
	publisher = {International Academy, Research and Industry Association (IARIA)},
	abstract = {In this paper, we discuss the implementation and performance of m2cpp: an automated translator from MATLAB code to its matching Armadillo counterpart in the C++ language. A non-invasive strategy has been adopted, meaning that the user of m2cpp does not insert annotations or additional code lines into the input serial MATLAB code. Instead, a combination of code analysis, automated preprocessing and a user-editable metainfo file ensures that m2cpp overcomes some specialties of the MATLAB language, such as implicit typing of variables and multiple return values from functions. Thread-based parallelisation, using either OpenMP or Intel{\textquoteright}s Threading Building Blocks (TBB) library, can also be carried out by m2cpp for designated for-loops. Such an automated and non-invasive strategy allows maintaining an independent MATLAB code base that is favoured by algorithm developers, while an updated translation into the easily readable C++ counterpart can be obtained at any time. Illustrating examples from seismic data processing are provided in this paper, with performance results obtained on multicore Sandy Bridge CPUs and Intel{\textquoteright}s Knights-Landing Xeon Phi processor.},
	keywords = {C++, Code translation, Image processing, Matlab, Seismology},
	isbn = {978-1-61208-599-9},
	issn = {2308-4499},
	url = {http://www.thinkmind.org/index.php?view=article\&articleid=advcomp_2017_4_30_20088},
	author = {Geir Yngve {Paulsen} and Clark, Stuart and Nordmoen, Bj{\o}rn and Nenakhov, Sergey and Andersson, Aron and Cai, Xing and Hans Petter {Dahle}},
	editor = {R{\"u}ckemann, Claus-Peter and Vucinic, D.}
}
@misc {25118,
	title = {Heterogeneous Manycore Simulations in Cardiac Electrophysiology},
	howpublished = {Tenth International Workshop on Programmability and Architectures for Heterogeneous Multicores (MULTIPROG-2017), Stockholm, Sweden},
	year = {2017},
	abstract = {The demand for computing power in computational cardiology is continuously increasing due to the use of physiologically realistic cell models and the need to simulate the heart and use higher resolutions in time and space. And while parallel computing itself is widely used in the field by now, the arrival of heterogeneous multicore architectures presents an important opportunity for speeding up the cardiac simulation process. However, this speedup is not obtained effortlessly, and achieving it presents numerous computational challenges of its own.We present a summary of our experiences from the implementation of multiple cardiac research codes on multicore, manycore, and GPU processors. Our main goal is to highlight the platform-specific challenges we face in our applications, ranging from efficient data movement to optimizations for large-scale irregular computations. Based on that, we discuss the suitability of the different plattforms for cardiac computations.},
	author = {Langguth, Johannes and Cai, Xing and Chai, Jun}
}
@inproceedings {25651,
	title = {Porting Tissue-Scale Cardiac Simulations to the Knights Landing Platform},
	journal = {International Conference on High Performance Computing},
	year = {2017},
	month = {10/2017},
	publisher = {Lecture Notes in Computer Science, Springer},
	isbn = {978-3-319-67629-6},
	doi = {10.1007/978-3-319-67630-2_28},
	author = {Langguth, Johannes and Jarvis, Chad and Cai, Xing},
	editor = {Kunkel, J.}
}
@article {24933,
	title = {Accelerating Detailed Tissue-Scale 3D Cardiac Simulations Using Heterogeneous CPU-Xeon Phi Computing},
	journal = {International Journal of Parallel Programming},
	year = {2016},
	month = {10/2016},
	pages = {1-23},
	publisher = {ACM/Springer},
	abstract = {We investigate heterogeneous computing, which involves both multicore CPUs and manycore Xeon Phi coprocessors, as a new strategy for computational cardiology. In particular, 3D tissues of the human cardiac ventricle are studied with a physiologically realistic model that has 10,000 calcium release units per cell and 100 ryanodine receptors per release unit, together with tissue-scale simulations of the electrical activity and calcium handling. In order to attain resource-efficient use of heterogeneous computing systems that consist of both CPUs and Xeon Phis, we first direct the coding effort at ensuring good performance on the two types of compute devices individually. Although SIMD code vectorization is the main theme of performance programming, the actual implementation details differ considerably between CPU and Xeon Phi. Moreover, in addition to combined OpenMP+MPI programming, a suitable division of the cells between the CPUs and Xeon Phis is important for resource-efficient usage of an entire heterogeneous system. Numerical experiments show that good resource utilization is indeed achieved and that such a heterogeneous simulator paves the way for ultimately understanding the mechanisms of arrhythmia. The uncovered good programming practices can be used by computational scientists who want to adopt similar heterogeneous hardware platforms for a wide variety of applications.},
	keywords = {Calcium handling, multiscale cardiac tissue simulation, supercomputing, Xeon Phi},
	doi = {10.1007/s10766-016-0461-2},
	author = {Langguth, Johannes and Lan, Qiang and Gaur, Namit and Cai, Xing}
}
@inproceedings {25016,
	title = {Enabling Tissue-Scale Cardiac Simulations Using Heterogeneous Computing on Tianhe-2},
	journal = {IEEE 22nd International Conference on Parallel and Distributed Systems (ICPADS)},
	year = {2016},
	month = {12/2016},
	pages = {843-852},
	publisher = {ACM/IEEE},
	abstract = {We develop a simulator for 3D tissue of the human cardiac ventricle with a physiologically realistic cell model and deploy it on the supercomputer Tianhe-2. In order to attain the full performance of the heterogeneous CPU-Xeon Phi design, we use carefully optimized codes for both devices and combine them to obtain suitable load balancing. Using a large number of nodes, we are able to perform tissue-scale simulations of the electrical activity and calcium handling in millions of cells, at a level of detail that tracks the states of trillions of ryanodine receptors. We can thus simulate arrythmogenic spiral waves and other complex arrhythmogenic patterns which arise from calcium handling deficiencies in human cardiac ventricle tissue. Due to extensive code tuning and parallelization via OpenMP, MPI, and SCIF/COI, large scale simulations of 10 heartbeats can be performed in a matter of hours. Test results indicate excellent scalability, thus paving the way for detailed whole-heart simulations in future generations of leadership class supercomputers.},
	keywords = {Calcium handling, multiscale cardiac tissue simulation, supercomputing, Xeon Phi},
	issn = {1521-9097},
	doi = {10.1109/ICPADS.2016.0114},
	author = {Langguth, Johannes and Lan, Qiang and Gaur, Namit and Cai, Xing and Wen, Mei},
	editor = {Zhang, Chunyuan}
}
@inproceedings {25077,
	title = {Matlab2cpp: A Matlab-to-C++ code translator},
	journal = {IEEE 2016 11th System of Systems Engineering Conference (SoSE)},
	year = {2016},
	month = {06/2016},
	publisher = {IEEE},
	abstract = {This paper discusses the source-to-source Matlab2cpp translator, which is currently being developed in the EMC2 project. With help of user-supplied information about variable data types and a few special translation rules, Matlab code can be automatically translated into C++ code that makes use of the Armadillo C++ library. Preliminary tests with examples from the SeismicLab package have confirmed that this Matlab-to-C++ translator is indeed capable of handling realistic Matlab code. This tool thus has the potential of closing the gap between human-friendly experimentation offered by interactive Matlab scripting and performance-critical production runs that rely on C++ programming.},
	keywords = {Armadillo, C++, Code translation, Matlab},
	doi = {10.1109/SYSOSE.2016.7542966},
	author = {Geir Yngve {Paulsen} and Feinberg, Jonathan and Cai, Xing and Nordmoen, Bj{\o}rn},
	editor = {Hans Petter {Dahle}}
}
@article {24934,
	title = {Panda: A Compiler Framework for Concurrent CPU+GPU Execution of 3D Stencil Computations on GPU-accelerated Supercomputers},
	journal = {International Journal of Parallel Programming},
	year = {2016},
	month = {10/2016},
	publisher = {ACM/Springer},
	abstract = {We present a new compiler framework for truly heterogeneous 3D stencil computation on GPU clusters. Our framework consists of a simple directive-based programming model and a tightly integrated source-to-source compiler. Annotated with a small number of directives, sequential stencil C codes can be automatically parallelized for large-scale GPU clusters. The most distinctive feature of the compiler is its capability to generate hybrid MPI+CUDA+OpenMP code that uses concurrent CPU+GPU computing to unleash the full potential of powerful GPU clusters. The auto-generated hybrid codes hide the overhead of various data motion by overlapping them with computation. Test results on the Titan supercomputer and the Wilkes cluster show that auto-translated codes can achieve about 90\% of the performance of highly optimized handwritten codes, for both a simple stencil benchmark and a real-world application in cardiac modeling. The user-friendliness and performance of our domain-specific compiler framework allow harnessing the full power of GPU-accelerated supercomputing without painstaking coding effort.},
	keywords = {code generation, code optimisation, CPU+GPU computing, CUDA, heterogeneous computing, MPI, OpenMP, source-to-source translation, stencil computation},
	doi = {10.1007/s10766-016-0454-1},
	author = {Sourouri, Mohammed and Baden, Scott and Cai, Xing}
}
@inproceedings {24839,
	title = {On the Performance and Energy Efficiency of the PGAS Programming Model on Multicore Architectures},
	journal = { High Performance Computing \& Simulation (2016) - International Workshop on  Optimization of Energy Efficient HPC \& Distributed Systems},
	year = {2016},
	month = {08/2016},
	publisher = {ACM IEEE},
	doi = {10.1109/HPCSim.2016.7568416},
	url = {http://dx.doi.org/10.1109/HPCSim.2016.7568416},
	author = {Lagravi{\`e}re, J{\'e}r{\'e}mie and Langguth, Johannes and Sourouri, Mohammed and Cai, Xing},
	editor = {Phuong H. {Ha}}
}
@article {24458,
	title = {Solving 3D Time-Fractional Diffusion Equations by High-Performance Parallel Computing},
	journal = {Fractional Calculus and Applied Analysis},
	volume = {19},
	year = {2016},
	pages = {140-160},
	publisher = {DE GRUYTER},
	abstract = {Numerically solving time-fractional diffusion equations, especially in three space dimensions, is a daunting computational task. This is due to the huge requirements of both computation time and memory storage. Compared with solving integer-ordered diffusion equations, the costs for time and storage both increase by a factor that equals the number of time steps involved. Aiming to overcome these two obstacles, we study in this paper three programming techniques: loop unrolling, vectorization and parallelization. For a representative numerical scheme that adopts finite differencing and explicit time integration, the performance-enhancing techniques are indeed shown to dramatically reduce the computation time, while allowing the use of many CPU cores and thereby a large amount of memory storage. Moreover, we have developed simple-to-use performance models that support our empirical findings, which are based on using up to 8192 CPU cores and 12.2 terabytes.},
	keywords = {fractional differential equations, loop unrolling, parallel computing, vectorization},
	doi = {10.1515/fca-2016-0008},
	url = {http://www.degruyter.com/view/j/fca.2016.19.issue-1/fca-2016-0008/fca-2016-0008.xml},
	author = {Zhang, Wei and Cai, Xing}
}
@article {23328,
	title = {An Analytical GPU Performance Model for 3D Stencil Computations from the Angle of Data Traffic},
	journal = {The Journal of Supercomputing},
	volume = {71},
	year = {2015},
	month = {02/2015},
	pages = {2433-2453},
	publisher = {Springer},
	abstract = {The achievable GPU performance of many scientific computations is not determined by a GPU{\textquoteright}s peak floating-point rate, but rather how fast data are moved through different stages of the entire memory hierarchy. We take low-order 3D stencil computations as a representative class to study the reachable GPU performance from the angle of data traffic. Specifically, we propose a simple analytical model to estimate the execution time based on quantifying the data traffic volume at three stages: (1) between registers and on-SMX storage, (2) between on-SMX storage and L2 cache, (3) between L2 cache and GPU{\textquoteright}s device memory. Three associated granularities are used: a CUDA thread, a thread block, and a set of simultaneously active thread blocks. For four 3D stencil computations, NVIDIA{\textquoteright}s profiling tools have been used to verify the accuracy of the quantified data traffic volumes, by trying a large number of executions with different problem sizes and thread block configurations. Moreover, by introducing an imbalance coefficient, together with the known realistic memory bandwidths, we can predict the execution time usage based on the quantified data traffic volumes. For the four 3D stencils, the average error of the time prediction is 6.9\% for a baseline implementation approach, whereas for a blocking implementation approach the average prediction error is 9.5\%.},
	keywords = {3D stencil methods, GPU, performance modeling},
	issn = {0920-8542},
	doi = {10.1007/s11227-015-1392-1},
	url = {http://link.springer.com/article/10.1007/s11227-015-1392-1},
	author = {Su, Huayou and Cai, Xing and Wen, Mei and Zhang, Chunyuan}
}
@article {19137,
	title = {Communication-Hiding Programming for Clusters with Multi-Coprocessor Nodes},
	journal = {Concurrency and Computation: Practice and Experience},
	volume = {27},
	year = {2015},
	note = {Published online before print.},
	month = {05/2015},
	pages = {4172{\textendash}4185},
	publisher = {John Wiley \& Sons, Ltd},
	abstract = {Future exascale systems are expected to adopt compute nodes that incorporate many accelerators. To shed some light on the upcoming software challenge, this paper investigates the particular topic of programming clusters that have multiple Xeon Phi coprocessors in each compute node. A new offload approach is considered for intra-node communication, which combines Intel\&rsquo;s APIs of coprocessor offload infrastructure (COI) and symmetric communication interface (SCIF) for achieving low latency. While the conventional pragma-based offload approach allows simpler programming, the COI-SCIF approach has three advantages in (1) lower overhead associated with launching offloaded code, (2) higher data transfer bandwidths, and (3) more advanced asynchrony between computation and data movement. The low-level COI-SCIF approach is also shown to have benefits over the MPI-OpenMP counterpart, which belongs to the symmetric usage mode. Moreover, a hybird programming strategy based on COI-SCIF is presented for joining the computational force of all CPUs and coprocessors, while realizing communication hiding. All the programming approaches are tested by a real-world 3D application, for which the COI-SCIF-based approach shows a performance advantage on Tianhe-2.},
	keywords = {hybrid programming, Intel Xeon Phi coprocessor, offload model, SCIF, Tianhe-2},
	doi = {10.1002/cpe.3507},
	author = {Dong, Xinnan and Wen, Mei and Chai, Jun and Cai, Xing and Zhao, Mandan and Zhang, Chunyuan}
}
@inproceedings {23704,
	title = {CPU+GPU Programming of Stencil Computations for Resource-Efficient Use of GPU Clusters},
	journal = {IEEE 18th International Conference on Computational Science and Engineering},
	year = {2015},
	month = {10/2015},
	pages = {17-26},
	publisher = {IEEE Computer Society},
	abstract = {On modern GPU clusters, the role of the CPUs is often restricted to controlling the GPUs and handling MPI communication. The unused computing power of the CPUs, however, can be considerable for computations whose performance is bounded by memory traffic. This paper investigates the challenges of simultaneous usage of CPUs and GPUs for computation. Our emphasis is on deriving a heterogeneous CPU+GPU programming approach that combines MPI, OpenMP and CUDA. To effectively hide the overhead of various inter- and intra-node communications, a new level of task parallelism is introduced on top of the conventional data parallelism. Combined with a suitable workload division between the CPUs and GPUs, our CPU+GPU programming approach is able to fully utilize the different processing units. The programming details and achievable performance are exemplified by a widely used 3D 7-point stencil computation, which shows high performance and scaling in experiments using up to 64 CPU-GPU nodes.},
	keywords = {CPU+GPU computing, CUDA, GPU, MPI, stencil},
	doi = {http://dx.doi.org/10.1109/CSE.2015.33},
	author = {Sourouri, Mohammed and Langguth, Johannes and Spiga, Filippo and Baden, Scott and Cai, Xing}
}
@misc {23482,
	title = {Dysfunctional Sarcoplasmic Reticulum Ca2+ Release Underlies Arrhythmogenic Triggers in Catecholaminergic Polymorphic Ventricular Tachycardia: A Simulation Study in a Human Ventricular Myocyte Model},
	howpublished = {Gordons Research Conference on Cardiac Arrhythmia},
	year = {2015},
	publisher = {Gordons Research Conference on Cardiac Arrhythmia},
	address = {Lucca, Italy},
	author = {Gaur, Namit and Cai, Xing and Rudy, Yoram}
}
@article {19140,
	title = {Enabling a Uniform OpenCL Device View for Heterogeneous Platforms},
	journal = {IEICE Transactions on Information and Systems},
	volume = {E98-D},
	year = {2015},
	month = {04/2015},
	pages = {812-823},
	publisher = {IEICE},
	abstract = {Aiming to ease the parallel programming for heterogeneous architectures, we propose and implement a high-level OpenCL runtime that conceptually merges multiple heterogeneous hardware devices into one\&nbsp;virtual heterogeneous compute device\&nbsp;(VHCD). Moreover, automated workload distribution among the devices is based on offline profiling, together with new programming directives that define the device-independent data access range per work-group. Therefore, an OpenCL program originally written for a single compute device can, after inserting a small number of programming directives, run efficiently on a platform consisting of heterogeneous compute devices. Performance is ensured by introducing the technique of virtual cache management, which minimizes the amount of host-device data transfer. Our new OpenCL runtime is evaluated by a diverse set of OpenCL benchmarks, demonstrating good performance on various configurations of a heterogeneous system.},
	keywords = {automated workload distribution, data transfer minimization, heterogeneous devices, OpenCL, virtualized single device},
	issn = {1745-1361},
	doi = {10.1587/transinf.2014EDP7244},
	author = {Huang, Dafei and Xun, Changqing and Wu, Nan and Wen, Mei and Zhang, Chunyuan and Cai, Xing and Yang, Qianming}
}
@inproceedings {23536,
	title = {Multi-GPU Implementations of Parallel 3D Sweeping Algorithms with Application to Geological Folding},
	journal = {ICCS 2015},
	year = {2015},
	month = {06/2015},
	pages = {1494-1503},
	publisher = {Elsevier},
	abstract = {This paper studies the CUDA programming challenges with using multiple GPUs inside a single machine to carry out plane-by-plane updates in parallel 3D sweeping algorithms. In particular, care must be taken to mask the overhead of various data movements between the GPUs. Multiple OpenMP threads on the CPU side should be combined multiple CUDA streams per GPU to hide the data transfer cost related to the halo computation on each 2D plane. Moreover, the technique of peer-to-peer data motion can be used to reduce the impact of 3D volumetric data shuffles that have to be done between mandatory changes of the grid partitioning. We have investigated the performance improvement of 2- and 4-GPU implementations that are applicable to 3D anisotropic front propagation computations related to geological folding. In comparison with a straightforward multi-GPU implementation, the overall performance improvement due to masking of data movements on four GPUs of the Fermi architecture was 23\%. The corresponding improvement obtained on four Kepler GPUs was 47\%.},
	keywords = {3D sweeping, anisotropic front propagation, CUDA programming, NVIDIA GPU, OpenMP},
	doi = {doi:10.1016/j.procs.2015.05.339},
	author = {Krishnasamy, Ezhilmathi and Sourouri, Mohammed and Cai, Xing}
}
@inbook {24032,
	title = {Parallel Computing},
	booktitle = {Encyclopedia of Applied and Computational Mathematics},
	year = {2015},
	month = {11/2015},
	pages = {1129-1132},
	publisher = {Springer Berlin Heidelberg},
	organization = {Springer Berlin Heidelberg},
	abstract = {Parallel computing can be understood as solving a computational problem through collaborative use of multiple resources that belong to a parallel computer system. Here, a parallel system can be anything between a single multiprocessor machine and an Internet-connected cluster that is made up of hybrid compute nodes. There are two main motivations for adopting parallel computations. The first motivation is about reducing the computational time, because employing more computational units for solving a same problem usually results in lower wall-time usage. The second {\textendash} and perhaps more important {\textendash} motivation is the wish of obtaining more details, which can arise from higher temporal and spatial resolutions, more advanced mathematical and numerical models, and more realizations.},
	isbn = {978-3-540-70528-4},
	doi = {10.1007/978-3-540-70529-1_424},
	author = {Cai, Xing},
	editor = {Engquist, Bj{\"o}rn}
}
@article {19103,
	title = {Parallel performance modeling of irregular applications in cell-centered finite volume methods over unstructured tetrahedral meshes},
	journal = {Journal of Parallel and Distributed Computing},
	volume = {76},
	year = {2015},
	month = {02/2015},
	pages = {120-131},
	publisher = {Elsevier},
	abstract = {Finite volume methods are widely used numerical strategies for solving partial differential equations. This paper aims at obtaining a quantitative understanding of the achievable performance of the cell-centered finite volume method on 3D unstructured tetrahedral meshes, using traditional multicore CPUs as well as modern GPUs. By using an optimized implementation and a synthetic connectivity matrix that exhibits a perfect structure of equal-sized blocks lying on the main diagonal, we can closely relate the achievable computing performance to the size of these diagonal blocks. Moreover, we have derived a theoretical model for identifying characteristic levels of the attainable performance as a function of hardware parameters, based on which a realistic upper limit of the performance can be predicted accurately. For real-world tetrahedral meshes, the key to high performance lies in a reordering of the tetrahedra, such that the resulting connectivity matrix resembles a block diagonal form where the optimal size of the blocks depends on the hardware. Numerical experiments confirm that the achieved performance is close to the practically attainable maximum and it reaches 75\% of the theoretical upper limit, independent of the actual tetrahedral mesh considered. From this, we develop a general model capable of identifying bottleneck performance of a system{\textquoteright}s memory hierarchy in irregular applications.},
	doi = {10.1016/j.jpdc.2014.10.005},
	author = {Langguth, Johannes and Wu, Nan and Chai, Jun and Cai, Xing}
}
@techreport {23952,
	title = {Is PGAS ready for the challenge of energy efficiency? A study with the NAS benchmark.},
	year = {2015},
	publisher = {UiT},
	address = {Troms{\o}},
	abstract = {In this study we compare the performance and power efficiency of Unified Parallel C (UPC), MPI and OpenMP by running a set of kernels from the NAS Benchmark.One of the goals of this study is to focus on the Partitioned Global Address Space (PGAS) model, in order to describe it and compare it to MPI and OpenMP.In particular we consider the power efficiency expressed in millions operations per second per watt\&nbsp; as a criterion to evaluate the suitability of PGAS compared to MPI and OpenMP.Based on these measurements, we provide an analysis to explain the difference of performance between UPC, MPI, and OpenMP.},
	keywords = {MPI, NAS Benchmark, OpenMP, performance evaluation, PGAS, power efficiency, UPC},
	url = {http://munin.uit.no/bitstream/handle/10037/8207/article.pdf?sequence=1\&isAllowed=y},
	author = {Lagravi{\`e}re, J{\'e}r{\'e}mie and Phuong H. {Ha} and Cai, Xing}
}
@article {23456,
	title = {Scalable heterogeneous CPU-GPU computations for unstructured tetrahedral meshes},
	journal = {IEEE Micro},
	volume = {35},
	year = {2015},
	month = {07/2015},
	pages = {6-15},
	publisher = {ACM IEEE},
	abstract = {A recent trend in modern high-performance computing environments is the introduction of powerful, energy-efficient hardware accelerators such as GPUs and Xeon Phi coprocessors. These specialized computing devices coexist with CPUs and are optimized for highly parallel applications. In regular computing-intensive applications with predictable data access patterns, these devices often far outperform CPUs and thus relegate the latter to pure control functions instead of computations. For irregular applications, however, the performance gap can be much smaller and is sometimes even reversed. Thus, maximizing the overall performance on heterogeneous systems requires making full use of all available computational resources, including both accelerators and CPUs.},
	doi = {10.1109/MM.2015.70},
	author = {Langguth, Johannes and Sourouri, Mohammed and Glenn T. {Lines} and Baden, Scott and Cai, Xing}
}
@inproceedings {23838,
	title = {Towards Detailed Tissue-Scale 3D Simulations of Electrical Activity and Calcium Handling in the Human Cardiac Ventricle},
	journal = {The 15th International Conference on Algorithms and Architectures for Parallel Processing (ICA3PP 2015)},
	year = {2015},
	month = {11/2015},
	pages = {79-92},
	publisher = {Lecture Notes in Computer Science, Springer Verlag},
	abstract = {We adopt a detailed human cardiac cell model, which has 10000 calcium release units, in connection with simulating the electrical activity and calcium handling at the tissue scale. This is a computationally intensive problem requiring a combination of efficient numerical algorithms and parallel programming. To this end, we use a method that is based on binomial distributions to collectively study the stochastic state transitions of the 100 ryanodine receptors inside every calcium release unit, instead of individually following each ryanodine receptor. Moreover, the implementation of the parallel simulator has incorporated optimizations in form of code vectorization and removing redundant calculations. Numerical experiments show very good parallel performance of the 3D simulator and demonstrate that various physiological behaviors are correctly reproduced. This work thus paves way for high-fidelity 3D simulations of human ventricular tissues, with the ultimate goal of understanding the mechanisms of arrhythmia.},
	keywords = {Calcium handling, multiscale cardiac tissue simulation, supercomputing},
	isbn = {978-3-319-27136-1},
	doi = {10.1007/978-3-319-27137-8_7},
	url = {http://link.springer.com/chapter/10.1007/978-3-319-27137-8_7},
	author = {Lan, Qiang and Gaur, Namit and Langguth, Johannes and Cai, Xing}
}
@article {Simula.simula.2246,
	title = {Towards Simulation of Subcellular Calcium Dynamics at Nanometre Resolution},
	journal = {International Journal of High Performance Computing Applications},
	volume = {29},
	year = {2015},
	pages = {51-63},
	publisher = {SAGE},
	abstract = {Numerical simulation of subcellular\&nbsp;\&nbsp;dynamics with a resolution down to one nanometre can be an important tool for discovering the physiological cause of many heart diseases. The requirement of enormous computational power, however, has made such simulations prohibitive so far. By using up to 12,288 Intel Xeon Phi 31S1P coprocessors on the new hybrid cluster Tianhe-2, which is the new number one supercomputer of the world, we have achieved 1.27 Pflop/s in double precision, which brings us much closer to the nanometre resolution. This is the result of efficiently using the hardware on different levels: (1) a single Xeon Phi (2) a single compute node that consists of a host and three coprocessors, and (3) a huge number of interconnected nodes. To overcome the challenge of programming Intel{\textquoteright}s new many-integrated core (MIC) architecture, we have adopted techniques such as vectorization, hierarchical data blocking, register data reuse, offloading computations to the coprocessors, and pipelining computations with intra-/inter-node communications.},
	doi = {10.1177/1094342013514465},
	author = {Chai, Jun and Johan Elon {Hake} and Wu, Nan and Wen, Mei and Cai, Xing and Glenn T. {Lines} and Yang, Jing and Su, Huayou and Zhang, Chunyuan and Liao, Xiangke}
}
@misc {23364,
	title = {Arrhythmogenic Mechanisms and Therapeutic Targets for Catecholaminergic Polymorphic Ventricular Tachycardia: A Simulation Study in a Human Ventricular Myocyte},
	howpublished = {Simula Research Laboratory},
	year = {2014},
	type = {Cardiac Modeling Workshop},
	author = {Gaur, Namit and Cai, Xing and Rudy, Yoram}
}
@inproceedings {Simula.simula.2870,
	title = {Automated Transformation of GPU-Specific OpenCL Kernels Targeting Performance Portability on Multi-Core/Many-Core CPUs},
	journal = {Proceedings of Euro-Par 2014},
	volume = {8632},
	year = {2014},
	pages = {210-221},
	publisher = {Springer},
	type = {Conference},
	address = {Berlin Heidelberg New York},
	keywords = {Conference},
	doi = {10.1007/978-3-319-09873-9_18},
	author = {Huang, Dafei and Wen, Mei and Xun, Changqing and Chen, Dong and Cai, Xing and Qiao, Yuran and Wu, Nan and Zhang, Chunyuan},
	editor = {Silva, F.}
}
@misc {Simula.simula.3086,
	title = {Cellular Arrhythmogenesis in CPVT in a Computational Model of Cardiac Ventricular Myocyte},
	year = {2014},
	month = {08/2014},
	type = {Poster at Scandinavian Physiological Society Meeting},
	address = {Scandinavian Physiological Society Meeting},
	author = {Gaur, Namit and Cai, Xing and Rudy, Yoram}
}
@misc {23362,
	title = {Cellular Arrhythmogenesis in CPVT in a computational model of cardiac ventricular myocyte},
	year = {2014},
	month = {09/14},
	publisher = {European Working Group of Cardiac Cellular Electrophysiology},
	address = {Maastrich, Netherlands},
	author = {Gaur, Namit and Cai, Xing and Rudy, Yoram}
}
@inproceedings {19138,
	title = {Effective Multi-GPU Communication Using Multiple CUDA Streams and Threads},
	journal = {20th International Conference on Parallel and Distributed Systems (ICPADS 2014)},
	year = {2014},
	pages = {981-986},
	publisher = {IEEE},
	abstract = {In the context of multiple GPUs that share the same PCIe bus, we propose a new communication scheme that leads to a more effective overlap of communication and computation. Multiple CUDA streams and OpenMP threads are adopted so that data can simultaneously be sent and received. A representative 3D stencil example is used to demonstrate the effectiveness of our scheme. We compare the performance of our new scheme with an MPI-based state-of-the-art scheme. Results show that our approach outperforms the state-of-the-art scheme, being up to 1.85{\texttimes} faster. However, our performance results also indicate that the current underlying PCIe bus architecture needs improvements to handle the future scenario of many GPUs per node.},
	doi = {10.1109/PADSW.2014.7097919},
	author = {Sourouri, Mohammed and Gillberg, Tor and Baden, Scott and Cai, Xing}
}
@inproceedings {19139,
	title = {Heterogeneous CPU-GPU Computing for the Finite Volume Method on 3D Unstructured Meshes},
	journal = {20th International Conference on Parallel and Distributed Systems (ICPADS 2014)},
	year = {2014},
	pages = {191-199},
	publisher = {IEEE},
	abstract = {A recent trend in modern high-performance computing environments is the introduction of accelerators such as GPU and Xeon Phi, i.e. specialized computing devices that are optimized for highly parallel applications and coexist with CPUs. In regular compute-intensive applications with predictable data access patterns, these devices often outperform traditional CPUs by far and thus relegate them to pure control functions instead of computations. For irregular applications however, the gap in relative performance can be much smaller, and sometimes even reversed. Thus, maximizing overall performance in such systems requires that full use of all available computational resources is made. In this paper we study the attainable performance of the cell-centered finite volume method on 3D unstructured tetrahedral meshes using heterogeneous systems consisting of CPUs and multiple GPUs. Finite volume methods are widely used numerical strategies for solving partial differential equations. The advantages of using finite volumes include built-in support for conservation laws and suitability for unstructured meshes. Our focus lies in demonstrating how a workload distribution that maximizes overall performance can be derived from the actual performance attained by the different computing devices in the heterogeneous environment. We also highlight the dual role of partitioning software in reordering and partitioning the input mesh, thus giving rise to a new combined approach to partitioning.},
	doi = {10.1109/PADSW.2014.7097808},
	author = {Langguth, Johannes and Cai, Xing}
}
@article {Simula.simula.2096,
	title = {High Efficient Sedimentary Basin Simulations on Hybrid CPU-GPU Clusters},
	journal = {Cluster Computing},
	volume = {17},
	number = {2},
	year = {2014},
	pages = {359-369},
	publisher = { },
	doi = {10.1007/s10586-013-0300-9},
	author = {Wen, Mei and Su, Huayou and Wei, Wenjie and Wu, Nan and Cai, Xing and Zhang, Chunyuan}
}
@misc {23365,
	title = {Mathematical Modeling of Ca Handling and Computational Studies of Ca-related Arrhythmogenesis in Heart},
	howpublished = {National University of Defense Technology, China},
	year = {2014},
	type = {Workshop},
	address = {Changsha, China},
	author = {Gaur, Namit and Cai, Xing and Rudy, Yoram}
}
@article {Simula.simula.2602,
	title = {Performance Modeling of Serial and Parallel Implementations of the Fractional Adams-Bashforth-Moulton Method},
	journal = {Fractional Calculus and Applied Analysis},
	volume = {17},
	number = {3},
	year = {2014},
	pages = {617-637},
	publisher = { },
	author = {Zhang, Wei and Wei, Wenjie and Cai, Xing}
}
@misc {Simula.simula.3084,
	title = {Spontaneous Ca2+ Release and Ca2+ Waves Underlie Early and Delayed Afterdepolarizations, and Triggered Activity, in Ryanodine Receptor Mutations Associated With Catecholaminergic Polymorphic Ventricular Tachycardia},
	year = {2014},
	month = {August},
	keywords = {Conference},
	author = {Gaur, Namit and Cai, Xing and Rudy, Yoram}
}
@misc {23361,
	title = {Spontaneous Ca2+ Release and Ca2+ Waves Underlie Early and Delayed Afterdepolarizations, and Triggered Activity in Ryanodine Receptor Mutation associated with Catecholaminergic Polymorphic Ventricular Tachycardia},
	year = {2014},
	month = {08/2014},
	address = {Scandinavian Physiological Society},
	author = {Gaur, Namit and Cai, Xing and Rudy, Yoram}
}
@misc {Simula.simula.2784,
	title = {Supercomputing-Enabled Study of Subcellular Calcium Dynamics},
	year = {2014},
	type = {Article in "meta" - a magazine published by the notur project},
	author = {Cai, Xing and Johan Elon {Hake} and Glenn T. {Lines}}
}
@article {Simula.simula.2264,
	title = {Time-Fractional Heat Equations and Negative Absolute Temperatures},
	journal = {Computers \& Mathematics with Applications},
	volume = {67},
	number = {1},
	year = {2014},
	pages = {164-171},
	publisher = { },
	doi = {10.1016/j.camwa.2013.11.007},
	author = {Zhang, Wei and Cai, Xing and Holm, Sverre}
}
@inproceedings {Simula.simula.2872,
	title = {Utilizing Multiple Xeon Phi Coprocessors on One Compute Node},
	journal = {International Conference on Algorithms and Architectures for Parallel Processing},
	volume = {8631},
	year = {2014},
	pages = {68-81},
	publisher = {Springer},
	type = {Conference},
	address = {Berlin Heidelberg New York},
	doi = {10.1007/978-3-319-11194-0_6},
	author = {Dong, Xinnan and Chai, Jun and Yang, Jing and Wen, Mei and Wu, Nan and Cai, Xing and Zhang, Chunyuan and Chen, Zhaoyun},
	editor = {Sun, X.-H.}
}
@misc {Simula.simula.2314,
	title = {Adopting Heterogeneous Hardware Platforms for Scientific Computing},
	howpublished = {Guest lecture at Technical Unviersity of Denmark, December 5},
	year = {2013},
	author = {Cai, Xing}
}
@article {Simula.simula.1490,
	title = {Balancing Efficiency and Accuracy for Sediment Transport Simulations},
	journal = {Computational Science \& Discovery},
	volume = {6},
	number = {1},
	year = {2013},
	pages = {015011},
	abstract = {Simulating multi-lithology sediment transport requires numerically solving a fully-coupled system of nonlinear partial differential equations. The most standard approach is to simultaneously update all the unknown fields at each time step. Such a fully-implicit strategy is computationally demanding due to the need of Newton-Raphson iterations, each having to set up and solve a large system of linearized algebraic equations. Fully-explicit numerical schemes that do not solve linear systems are possible to devise, but suffer from lower numerical stability and accuracy. If we count the total number of floating-point operations needed to achieve stable numerical solutions with a prescribed level of accuracy, the fully-implicit approach probably wins over its fully-explicit counterpart. However, the latter may nevertheless win in the overall computation time, because computers achieve higher hardware efficiency for simpler numerical computations. Adding to this competition, there are semi-implicit numerical schemes that lie between the two extremes. This paper has two novel contributions. First, we device a new semi-implicit scheme that has secondorder accuracy in the temporal direction. Second, and more importantly, we propose a simple prediction model for the overall computation time on multicore architectures, applicable to many numerical implementations. Based on performance prediction, appropriate numerical schemes can be chosen by considering accuracy, stability, and computing speed at the same time. Our methodology is tested by numerical experiments modeling the sediment transport in Monterey Bay.},
	doi = {10.1088/1749-4699/6/1/015011},
	author = {Wei, Wenjie and Clark, Stuart and Su, Huayou and Wen, Mei and Cai, Xing}
}
@inproceedings {Simula.simula.1972,
	title = {On the GPU Performance of 3D Stencil Computations Implemented in OpenCL},
	journal = {Proceedings of International Supercomputing Conference, ISC 2013},
	volume = {7905},
	year = {2013},
	pages = {125-135},
	publisher = {Springer},
	type = {Conference},
	address = {Berlin Heidelberg New York},
	keywords = {Conference},
	doi = {10.1007/978-3-642-38750-0_10},
	author = {Su, Huayou and Wu, Nan and Wen, Mei and Zhang, Chunyuan and Cai, Xing},
	editor = {Julian Martin {Kunkel} and Ludwig, Thomas and Hans Werner {Meuer}}
}
@inproceedings {Simula.simula.2266,
	title = {On the GPU Performance of Cell-Centered Finite Volume Method Over Unstructured Tetrahedral Meshes},
	journal = {Proceedings of the 3rd Workshop on Irregular Applications: Architectures and Algorithms},
	year = {2013},
	publisher = {ACM},
	type = {Workshop},
	address = {New York},
	doi = {10.1145/2535753.2535765},
	author = {Langguth, Johannes and Wu, Nan and Chai, Jun and Cai, Xing},
	editor = {Tumeo, A. and Feo, J. and Villa, O. and Secchi, S.}
}
@inproceedings {Simula.simula.2100,
	title = {On the GPU-CPU Performance Portability of OpenCL for 3D Stencil Computations},
	journal = {Proceedings of IEEE 19th International Conference on Parallel and Distributed Systems},
	year = {2013},
	pages = {78-85},
	publisher = {IEEE},
	type = {Conference},
	address = {Los Alamitos, California  {\textbullet} Washington {\textbullet} Tokyo},
	keywords = {Conference},
	doi = {10.1109/ICPADS.2013.23},
	author = {Su, Huayou and Wu, Nan and Wen, Mei and Zhang, Chunyuan and Cai, Xing}
}
@misc {Simula.simula.2316,
	title = {Introduction to Scientific Writing},
	howpublished = {Intensive course given at National University of Defence Technology, China, October 17-19},
	year = {2013},
	author = {Cai, Xing}
}
@misc {Simula.simula.2322,
	title = {Mint: a User-Friendly C-to-CUDA Code Translator},
	howpublished = {Talk given at SIAM CSE{\textquoteright}13, February 25},
	year = {2013},
	abstract = {Aiming at automated source-to-source code translation from C to CUDA, we have developed the Mint framework. Users only need to annotate serial C code with a few compiler directives, specifying host-device data transfers plus the parallelization depth and granularity of loop nests. Mint then generates CUDA code as output, while carrying out on-chip memory optimizations that will greatly benefit 3D stencil computations. Several real-world applications have been ported to GPU using Mint.},
	keywords = {Conference},
	author = {Cai, Xing and Unat, Didem and Baden, Scott}
}
@inproceedings {Simula.simula.1970,
	title = {Performance of Sediment Transport Simulations on NVIDIA{\textquoteright}s Kepler Architecture},
	journal = {The International Conference on Computational Science, ICCS 2013},
	volume = {18},
	year = {2013},
	pages = {1275-1281},
	publisher = {Elsevier},
	type = {Conference},
	keywords = {Conference},
	doi = {10.1016/j.procs.2013.05.294},
	author = {Su, Huayou and Wu, Nan and Wen, Mei and Zhang, Chunyuan and Cai, Xing},
	editor = {Alexandrov, Vassil and Lees, Michael and Krzhizhanovskaya, Valeria and Dongarra, Jack and Peter M.A. {Sloot}}
}
@article {Simula.simula.1394,
	title = {Resource-Efficient Utilization of CPU/GPU-Based Heterogeneous Supercomputers for Bayesian Phylogenetic Inference},
	journal = {The Journal of Supercomputing},
	volume = {66},
	number = {1},
	year = {2013},
	pages = {364-380},
	doi = {10.1007/s11227-013-0911-1},
	author = {Chai, Jun and Su, Huayou and Wen, Mei and Cai, Xing and Wu, Nan and Zhang, Chunyuan}
}
@misc {Simula.simula.2312,
	title = {Scientific Computing on Accelerator-Based Supercomputers},
	howpublished = {Guest lecture at FFI, September 20},
	year = {2013},
	author = {Cai, Xing}
}
@article {Simula.simula.2098,
	title = {Simulating Cardiac Electrophysiology in the Era of GPU-Cluster Computing},
	journal = {IEICE Transactions on Information and Systems},
	volume = {E96-D},
	number = {12},
	year = {2013},
	pages = {2587-2595},
	doi = {10.1587/transinf.E96.D.2587},
	author = {Chai, Jun and Wen, Mei and Wu, Nan and Huang, Dafei and Yang, Jing and Cai, Xing and Zhang, Chunyuan and Yang, Qianming}
}
@article {Simula.sc.1270,
	title = {Accelerating a 3D Finite-Difference Earthquake Simulation With a C-to-CUDA Translator},
	journal = {Computing in Science \& Engineering},
	volume = {14},
	number = {3},
	year = {2012},
	pages = {48-59},
	doi = {http://dx.doi.org/10.1109/MCSE.2012.44},
	author = {Unat, Didem and Zhou, Jun and Cui, Yifeng and Baden, Scott and Cai, Xing}
}
@inproceedings {Simula.simula.1234,
	title = {Efficient Implementations of the Adams-Bashforth-Moulton Method for Solving Fractional Differential Equations},
	journal = {Proceedings of FDA{\textquoteright}12},
	year = {2012},
	publisher = { },
	type = {Conference},
	address = { },
	keywords = {Conference},
	author = {Zhang, Wei and Cai, Xing}
}
@misc {Simula.simula.1740,
	title = {Elements of Scientific Computing},
	howpublished = {3-day intensive course given at National University of Defence Technology, China, October 16-18},
	year = {2012},
	author = {Glenn T. {Lines} and Cai, Xing}
}
@inproceedings {Simula.simula.1518,
	title = {A New Parallel 3D Front Propagation Algorithm for Fast Simulation of Geological Folds},
	journal = {The International Conference on Computational Science, ICCS 2012},
	volume = {9},
	year = {2012},
	pages = {947-955},
	publisher = {ICCS},
	type = {Conference},
	address = {Amsterdam},
	abstract = {We present a novel method for 3D anisotropic front propagation and apply it to the simulation of geological folding. The new iterative algorithm has a simple structure and abundant parallelism, and is easily adapted to multithreaded architectures using OpenMP. Moreover, we have used the automated C-to-CUDA source code translator, Mint, to achieve greatly enhanced computing speed on GPUs. Both OpenMP and CUDA implementations have been tested and benchmarked on several examples of 3D geological folding.},
	keywords = {Conference},
	doi = {10.1016/j.procs.2012.04.101},
	author = {Gillberg, Tor and Sourouri, Mohammed and Cai, Xing},
	editor = {Ali, Hesham and Shi, Yong and Khazanchi, Deepak and Lees, Michael and van Albada, Dick and Dongarra, Jack and Peter M.A. {Sloot} and Dongarra, Jack}
}
@misc {Simula.simula.1742,
	title = {Scientific Computing Needs Supercomputers, But Also Something Else!},
	howpublished = {Invited lecture at National University of Defence Technology, China, March 29},
	year = {2012},
	author = {Cai, Xing}
}
@misc {Simula.simula.1446,
	title = {Simulating Basin Evolution on GPU-Enhanced Hybrid Supercomputers},
	year = {2012},
	abstract = {According to the Top500 list that was published in November 2011, three of the world{\textquoteright}s five most powerful supercomputers are GPU-enhanced clusters of multicore CPUs. This hardware trend is expected to prevail for the foreseeable future. It is therefore our intention to report here some experiences of using one such cutting-edge GPU-CPU cluster, when applied to simulations of sediment deposition in connection with basin evolution. Our observations are twofold: (1) Simple numerical algorithms are to be favored on homogeneous clusters of CPUs, and even more so on hybrid CPU-GPU clusters. (2) It is possible but challenging to utilize the computing power of both the CPU and GPU sides on a hybrid cluster.},
	author = {Cai, Xing and Wen, Mei}
}
@misc {Simula.simula.1744,
	title = {Some Perspectives on High-Performance Computing in the Geosciences},
	howpublished = {Computational Geoscience Workshop, Geilo, January 19},
	year = {2012},
	author = {Cai, Xing}
}
@misc {Simula.simula.1906,
	title = {Understanding the Performance of Stencil-Based Computations on Multicore CPU},
	howpublished = {CBC Seminar series},
	year = {2012},
	month = {Mar},
	author = {Cai, Xing}
}
@inproceedings {Simula.simula.1342,
	title = {Using 1000+ GPUs and 10000+ CPUs for Sedimentary Basin Simulations},
	journal = {Proceedings of IEEE Cluster 2012},
	year = {2012},
	pages = {27-35},
	publisher = {IEEE},
	type = {Conference},
	address = {Los Alamitos, California  {\textbullet} Washington {\textbullet} Tokyo},
	keywords = {Conference},
	doi = {10.1109/CLUSTER.2012.37},
	author = {Wen, Mei and Su, Huayou and Wei, Wenjie and Wu, Nan and Cai, Xing and Zhang, Chunyuan}
}
@misc {Simula.sc.1272,
	title = {Efficient Computations of Initial-Value Problems Involving Fractional Derivatives},
	howpublished = {Talk at the seminar on wave propagation in complex media, November 23},
	year = {2011},
	author = {Cai, Xing and Zhang, Wei}
}
@misc {Simula.sc.1264,
	title = {A Function-Centric Generic Framework for Parallelization},
	howpublished = {Talk at CLS Workshop at UiO on April 13},
	year = {2011},
	author = {Cai, Xing}
}
@inproceedings {Simula.simula.388,
	title = {Mint: Realizing CUDA Performance in 3D Stencil Methods With Annotated C},
	journal = {Proceedings of the 25th International Conference on Supercomputing (ICS{\textquoteright}11)},
	year = {2011},
	pages = {214-224},
	publisher = {ACM Press},
	type = {Conference},
	abstract = {We present Mint, a programming model that enables the non-expert to enjoy the performance benefits of hand coded CUDA without becoming entangled in the details. Mint targets stencil methods, which are an important class of scientific applications. We have implemented the Mint programming model with a source-to-source translator that generates optimized CUDA C from traditional C source. The translator relies on annotations to guide translation at a high level. The set of pragmas is small, and the model is compact and simple. Yet, Mint is able to deliver performance competitive with painstakingly hand-optimized CUDA. We show that, for a set of widely used stencil kernels in two and three dimensions, Mint realized 80\% of the performance obtained from aggressively optimized CUDA on the 200 series NVIDIA GPUs. Our optimizations target three dimensional kernels, which present a daunting array of optimizations.},
	isbn = {978-1-4503-0102-2},
	doi = {10.1145/1995896.1995932},
	author = {Unat, Didem and Cai, Xing and Baden, Scott},
	editor = {David K. {Lowenthal} and Bronis R. {de Supinski} and Sally A. {McKee}}
}
@inproceedings {Simula.simula.374,
	title = {An OpenMP-Enabled Parallel Simulator for Particle Transport in Fluid Flows},
	journal = {Proceedings of the International Conference on Computational Science, ICCS 2011},
	volume = {4},
	year = {2011},
	pages = {1475-1484},
	publisher = {Elsevier Science},
	type = {Conference},
	address = { },
	abstract = {By using C/C++ programming and OpenMP parallelization, we implement a newly developed numerical strategy for simulating particle transport in sparsely particle-laden fluid flows. Due to its highly dynamic property of the chosen numerical framework, the implementation needs to properly handle the moving, merging and splitting of a large number of particle lumps. We show that a careful division of the entire computational work into a set of distinctive tasks not only produces a clearly structured code, but also allows taskwise parallelization through appropriate use of OpenMP compiler directives. The performance of the OpenMP-enabled parallel simulator is tested on representative architectures of multicore-based shared memory, by running a large case of particle transport in a pipe flow. Attention is also given to a number of performance-critical features of the simulator.},
	doi = {10.1016/j.procs.2011.04.160},
	author = {Wei, Wenjie and Al-Khayat, Omar and Cai, Xing},
	editor = {Sato, M. and Matsuoka, S.}
}
@misc {Simula.sc.1266,
	title = {Parallel Simulation of Particle Transport Using OpenMP},
	howpublished = {Guest lecture at UCSD on January 31},
	year = {2011},
	author = {Cai, Xing}
}
@misc {Simula.sc.1260,
	title = {Programming With OpenMP and Mixed MPI-OpenMP},
	howpublished = {Invited lecture at pre-conference workshop of NOTUR 2011},
	year = {2011},
	author = {Cai, Xing}
}
@misc {Simula.sc.1274,
	title = {Programming With OpenMP and Mixed MPI-OpenMP},
	howpublished = {Invited lecture during USIT{\textquoteright}s Research Computing Services training week, November 14-17},
	year = {2011},
	author = {Cai, Xing}
}
@article {Simula.SC.508,
	title = {Stability of Two Time-Integrators for the Aliev-Panfilov System},
	journal = {International Journal of Numerical Analysis and Modeling},
	volume = {8},
	number = {3},
	year = {2011},
	pages = {427-442},
	author = {Hanslien, Monica and Artebrant, Robert and Tveito, Aslak and Glenn T. {Lines} and Cai, Xing}
}
@misc {Simula.sc.1262,
	title = {Study of the Computational Efficiency for Different Usages of Pythoning},
	howpublished = {Talk at CLS Workshop at UiO on April 13},
	year = {2011},
	author = {Cai, Xing}
}
@article {Simula.sc.792,
	title = {Computational Modeling of the Initiation and Development of Spontaneous Intracellular Ca2+ Waves in Ventricular Myocytes},
	journal = {Philosophical Transactions of the Royal Society A},
	volume = {368},
	number = {1925},
	year = {2010},
	month = {August},
	pages = {3953-3965},
	doi = {10.1098/rsta.2010.0146},
	author = {Li, Pan and Wei, Wenjie and Cai, Xing and Soeller, Christian and Cannell, Mark and Arun V. {Holden}}
}
@misc {Simula.sc.860,
	title = {Detailed Numerical Analyses of the Aliev-Panfilov Model on GPGPU},
	howpublished = {Talk at PARA2010 Conference},
	year = {2010},
	author = {Cai, Xing and Unat, Didem and Baden, Scott}
}
@book {Tveito.2005.1,
	title = {Elements of Scientific Computing},
	year = {2010},
	month = {October},
	publisher = {Springer},
	organization = {Springer},
	address = {Berlin / Heidelberg},
	isbn = {978-3-642-11298-0},
	doi = {http://dx.doi.org/10.1007/978-3-642-1129},
	author = {Tveito, Aslak and Hans Petter {Langtangen} and Nielsen, Bj{\o}rn Fredrik and Cai, Xing}
}
@misc {Simula.sc.1268,
	title = {A Non-Invasive Approach to Parallelizing Sequential Simulators of Partial Differential Equations},
	howpublished = {Guest lecture at UCSD on October 28},
	year = {2010},
	author = {Cai, Xing}
}
@inproceedings {Simula.sc.816,
	title = {Numerical Analysis of a Dual-Sediment Transport Model Applied to Lake Okeechobee, Florida},
	journal = {Proceedings of the 2010 Ninth International Symposium on Parallel and Distributed Computing},
	year = {2010},
	pages = {189-194},
	publisher = {IEEE Computer Society Press},
	type = {Conference},
	abstract = {In this work, we study two numerical strategies for solving a coupled system of distinct nonlinear partial differential equations, which can be used to model dual-lithology sedimentation. Using high-resolution bathymetry data of Lake Okeechobee, Florida, we study the stability and computational speed of these numerical strategies. The fully-explicit scheme is straightforward to implement and requires a relatively small amount of computation per time step. However, this simple numerical strategy has to use small time steps to ensure stability. These small time steps may render the explicit solver impractical for long-term and high-resolution basin simulations. As a comparison, we have implemented a semi-implicit scheme, where the two partial differential equations at each time step are solved implicitly in sequence. This semi-implicit scheme is numerically stable even for very large time steps. Using parallel computing, we have applied both schemes to a realistic case, Lake Okeechobee, Florida. The simulation successfully diffused material along a river-channel and into the lake. Both MPI-based implementations demonstrated satisfactory parallel efficiency on a multicore-based cluster.},
	isbn = {978-1-4244-7602-2},
	doi = {10.1109/ISPDC.2010.29},
	author = {Clark, Stuart and Wei, Wenjie and Cai, Xing},
	editor = {Ozturan, Can}
}
@misc {Simula.cg.18,
	title = {OpenMP: an Easy Parallel Approach for Scientific Computing on Multi-Core Architecture},
	howpublished = {A short course respectively given at Simula in March and University of Oslo in May},
	year = {2010},
	month = {May},
	author = {Wei, Wenjie and Cai, Xing}
}
@misc {Simula.acdc.8,
	title = {Optimizing the Aliev-Panfilov Model of Cardiac Excitation on Heterogeneous Systems},
	howpublished = {Talk at Para 2010: State of the Art in Scientific and Parallel Computing in Reykjavik on June 6-9, 2010},
	year = {2010},
	month = {June},
	abstract = {The Aliev-Panfilov model is a simple model for signal propagation in cardiac tissue, and accounts for complex behavior such as how spiral waves break up and form elaborate patterns. Spiral waves can lead to life-threatening situations such as ventricular fibrillation. We discuss an implementation and underlying optimizations for the nVIDIA Tesla C1060 GPU as well as an implementation on multiple GPUs running under MPI. We achieve nearly perfect scaling on 4 GPUs, in single precision, running 58 times faster than a CPU-only implementation and 26 times faster in double precision.},
	author = {Unat, Didem and Cai, Xing and Baden, Scott}
}
@inbook {Yeh.2006.1,
	title = {Parallel Computing Engines for Subsurface Imaging Technologies},
	booktitle = {Advanced Computational Infrastructures for Parallel and Distributed Adaptive Applications},
	series = {Wiley Series of Parallel and Distributed Computing},
	year = {2010},
	pages = {29-43},
	publisher = {Wiley},
	organization = {Wiley},
	chapter = {3},
	address = {Hoboken, New Jersey},
	isbn = {978-0-470-07294-3},
	author = {Jim T. C. {Yeh} and Cai, Xing and Hans Petter {Langtangen} and Zhu, Junfeng and Ni, Chuen-Fa},
	editor = {Parashar, M. and Li, X.}
}
@misc {Simula.simula.330,
	title = {Parallel Programming Using Python},
	howpublished = {CBC Seminar on advanced use of Python programming language},
	year = {2010},
	author = {Cai, Xing}
}
@article {Simula.sc.790,
	title = {Simplifying the Parallelization of Scientific Codes by a Function-Centric Approach in Python},
	journal = {Computational Science \& Discovery},
	volume = {3},
	year = {2010},
	pages = {015003},
	doi = {10.1088/1749-4699/3/1/015003},
	author = {Jon Kerr {Nilsen} and Cai, Xing and H{\o}yland, Bj{\o}rn and Hans Petter {Langtangen}}
}
@article {Simula.SC.194,
	title = {Analysis of Tracer Tomography Using Temporal Moments of Tracer Breakthrough Curves},
	journal = {Advances in Water Resources},
	volume = {32},
	number = {3},
	year = {2009},
	pages = {391-400},
	doi = {10.1016/j.advwatres.2008.12.001},
	author = {Zhu, Junfeng and Cai, Xing and Jim T. C. {Yeh}}
}
@inproceedings {Simula.SC.204,
	title = {Evolution of Intracellular Ca2+ Waves From About 10,000 RyR Clusters: Towards Solving a Computationally Daunting Task},
	journal = {The Fifth International Conference on Functional Imaging and Modeling of the Heart},
	year = {2009},
	pages = {11-20},
	publisher = {Springer},
	type = {Conference},
	doi = {10.1007/978-3-642-01932-6},
	author = {Li, Pan and Wei, Wenjie and Cai, Xing and Soeller, Christian and Cannell, Mark and Arun V. {Holden}},
	editor = {Ayache, Nicholas and Delingette, Herv{\'e} and Sermesant, Maxime}
}
@article {Simula.sc.742,
	title = {A Multilevel Approach for the Satisfiability Problem},
	journal = {ISAST Transactions on Computers and Intelligent Systems},
	volume = {1},
	number = {2},
	year = {2009},
	pages = {29-37},
	author = {Bouhmala, Noureddine and Cai, Xing}
}
@misc {Simula.SC.604,
	title = {Parallel Simulation of Dual Lithology Sedimentation},
	year = {2009},
	note = {Second prize winner of the poster competition at the conference.},
	author = {Wei, Wenjie and Clark, Stuart and Cai, Xing and Are Magnus {Bruaset}}
}
@inbook {Simula.SC.492,
	title = {Past and Future Perspectives on Scientific Software},
	booktitle = {Simula Research Laboratory - by thinking constantly about it},
	year = {2009},
	pages = {321-362},
	publisher = {Springer},
	organization = {Springer},
	chapter = {23},
	address = {Heidelberg},
	isbn = {978-3-642-01155-9},
	author = {Logg, Anders and Hans Petter {Langtangen} and Cai, Xing},
	editor = {Tveito, Aslak and Are Magnus {Bruaset} and Lysne, Olav}
}
@article {Simula.sc.1284,
	title = {A Study on Modified Szabo{\textquoteright}s Wave Equation Modeling of Frequency-Dependent Dissipation in Ultrasonic Medical Imaging},
	journal = {Physica Scripta},
	volume = {2009},
	number = {T136},
	year = {2009},
	pages = {014014},
	doi = {doi:10.1088/0031-8949/2009/T136/014014},
	author = {Chen, Wen and Zhang, Xiaodi and Cai, Xing}
}
@article {Simula.SC.442,
	title = {Towards a Computational Method for Imaging the Extracellular Potassium Concentration During Regional Ischemia},
	journal = {Mathematical Biosciences},
	volume = {220},
	number = {2},
	year = {2009},
	pages = {118-130},
	doi = {10.1016/j.mbs.2009.05.004},
	author = {Nielsen, Bj{\o}rn Fredrik and Cai, Xing and Sundnes, Joakim and Tveito, Aslak}
}
@inproceedings {Langtangen.2006.1,
	title = {On the Efficiency of Python for High-Performance Computing: a Case Study Involving Stencil Updates for Partial Differential Equations},
	journal = {Modeling, Simulation and Optimization of Complex Processes},
	year = {2008},
	pages = {337-358},
	publisher = {Springer},
	type = {Conference},
	isbn = {978-3-540-23027-4},
	author = {Hans Petter {Langtangen} and Cai, Xing},
	editor = {H. G. {Bock} and Kostina, E. and H. X. {Phu} and Rannacher, R.}
}
@misc {Simula.SC.88,
	title = {High-Performance Computing on Distributed-Memory Architecture},
	howpublished = {Lecture at the 2008 Winter School on Parallel Computing, Jan. 20-25, Geilo, Norway},
	year = {2008},
	month = {January},
	author = {Cai, Xing}
}
@inbook {Simula.SC.198,
	title = {A Multilevel Greedy Algorithm for the Satisfiability Problem},
	booktitle = {Advances in Greedy Algorithms},
	year = {2008},
	pages = {39-54},
	publisher = {IN-TECH Education and Publishing},
	organization = {IN-TECH Education and Publishing},
	chapter = {3},
	address = {Vienna},
	isbn = {978-953-7619-27-5},
	author = {Bouhmala, Noureddine and Cai, Xing},
	editor = {Bednorz, Witold}
}
@misc {Simula.SC.87,
	title = {Parallel Computing; Why \& How?},
	howpublished = {Lecture at the 2008 Winter School on Parallel Computing, Jan. 20-25, Geilo, Norway},
	year = {2008},
	month = {January},
	author = {Cai, Xing}
}
@book {Simula.SC.34,
	title = {Quantitative Information Fusion for Hydrological Sciences},
	volume = {79 in Studies in Computational Intelligence},
	year = {2008},
	month = {January, 2008},
	publisher = {Springer},
	abstract = {In a rapidly evolving world of knowledge and technology, do you ever wonder how hydrology is catching up? This book takes the angle of computational hydrology and envisions one of the future directions, namely, quantitative integration of high-quality hydrologic field data with geologic, hydrologic, chemical, atmospheric, and biological information to characterize and predict natural systems in hydrological sciences. Intelligent computation and information fusion are the key words. The aim is to provide both established scientists and graduate students with a summary of recent developments in this topic. The chapters of this edited volume cover some of the most important ingredients for quantitative hydrological information fusion, including data fusion techniques, interactive computational environments, and supporting mathematical and numerical methods. Real-life applications of hydrological information fusion are also addressed.},
	isbn = {978-3-540-75383-4},
	author = {Cai, Xing and Jim T. C. {Yeh}}
}
@misc {Simula.SC.202,
	title = {Resource-Efficient Simulation Of Tsunami Wave Propagation on Parallel Computers},
	howpublished = {Invited talk at 2nd Internationsal Symposium for Integrated Predictive Simulation System for Earthequake and Tsunami Disaster, October 21-22, Tokyo, Japan},
	year = {2008},
	author = {Cai, Xing}
}
@misc {Simula.SC.89,
	title = {Simulation of Tsunami Propagation},
	howpublished = {Talk at the 2nd eScience Meeting, Jan. 21-22, Geilo, Norway},
	year = {2008},
	month = {January},
	author = {Cai, Xing}
}
@misc {Simula.SC.200,
	title = {Use of Advanced Computing in Tomographic Surveys},
	howpublished = {Talk at PARA 2008, May 13-16, Trondheim, Norway},
	year = {2008},
	author = {Cai, Xing}
}
@article {Simula.SC.196,
	title = {A View Toward the Future of Subsurface Characterization: CAT Scanning Groundwater Basins},
	journal = {Water Resources Research},
	volume = {44},
	year = {2008},
	note = {Citation number: W03301},
	abstract = {In this opinion paper we contend that high-resolution characterization, monitoring, and prediction are the key elements to advancing and reducing uncertainty in our understanding and prediction of subsurface processes at basin scales. First, we advocate that recently developed tomographic surveying is an effective and high-resolution approach for characterizing the field-scale subsurface. Fusion of different types of tomographic surveys further enhances the characterization. A basin is an appropriate scale for many water resources management purposes. We thereby propose the expansion of the tomographic surveying and data fusion concept to basin-scale characterization. In order to facilitate basin-scale tomographic surveys, different types of passive, basin-scale, CAT scan technologies are suggested that exploit recurrent natural stimuli (e.g., lightning, earthquakes, storm events, barometric variations, river-stage variations, etc.) as sources of excitations, along with implementation of sensor networks that provide long-term and spatially distributed monitoring of excitation as well as response signals on the land surface and in the subsurface. This vision for basin-scale subsurface characterization faces many significant technological challenges and requires interdisciplinary collaborations (e.g., surface and subsurface hydrology, geophysics, geology, geochemistry, information and sensor technology, applied mathematics, atmospheric science, etc.). We nevertheless contend that this should be a future direction for subsurface science research.},
	doi = {10.1029/2007WR006375},
	author = {Jim T. C. {Yeh} and Lee, Cheng-Haw and Hsu, Kuo-Chin and Walter A. {Illman} and Barrash, Warren and Cai, Xing and Daniels, Jeffrey and Sudicky, Ed and Wan, Li and Li, Guomin and C. L. {Winter}}
}
@misc {Simula.SC.70,
	title = {Bridging the Gap Between Computational Scientists and HPC},
	howpublished = {Article published in Meta, Number 3},
	year = {2007},
	month = {December},
	author = {Cai, Xing}
}
@misc {Simula.SC.17,
	title = {Building Hybrid Parallel PDE Software by Domain Decomposition and Object-Oriented Programming},
	howpublished = {Talk at the ICCM 2007 Conference, April 4-6, Hiroshima, Japan},
	year = {2007},
	author = {Cai, Xing}
}
@misc {Simula.SC.15,
	title = {On Building Parallel Algorithms and Software for Hydraulic Tomography},
	howpublished = {Talk at SIAM GS2007 Conference, March 19-22, Santa Fe, New Mexico, USA},
	year = {2007},
	month = {March},
	author = {Cai, Xing}
}
@misc {Simula.SC.13,
	title = {On a Future Software Platform for Demanding Multi-Scale and Multi-Physics Problems},
	howpublished = {Talk at SIAM CSE07 Conference, Costa Mesa, CA, Feb. 19-23},
	year = {2007},
	author = {Cai, Xing and Hans Petter {Langtangen}}
}
@inproceedings {Cai.2006.1,
	title = {Making Hybrid Tsunami Simulators in a Parallel Software Framework},
	journal = {International Workshop on Applied Parallel Computing (PARA{\textquoteright}06)},
	year = {2007},
	pages = {686-693},
	publisher = {Springer Verlag},
	type = {Workshop},
	address = {Berlin Heidelberg},
	isbn = {978-3-540-75754-2},
	author = {Cai, Xing and Hans Petter {Langtangen}},
	editor = {K{\r a}gstr{\o}m, B. and Elmroth, E. and Dongarra, J. and Wasniewski, J.}
}
@misc {Simula.SC.71,
	title = {Making Parallel PDE Software by Object-Oriented Programming},
	howpublished = {Guest lecture given at Hohai University, China, May 17},
	year = {2007},
	month = {May},
	author = {Cai, Xing}
}
@article {Cai.2006.10,
	title = {A Note on the Efficiency of the Conjugate Gradient Method for a Class of Time-Dependent Problems},
	journal = {Numerical Linear Algebra with Applications},
	volume = {14},
	number = {5},
	year = {2007},
	pages = {459-467},
	author = {Cai, Xing and Nielsen, Bj{\o}rn Fredrik and Tveito, Aslak}
}
@article {Mardal.2006.4,
	title = {An Order Optimal Solver for the Discretized Bidomain Equations},
	journal = {Numerical Linear Algebra with Applications},
	volume = {14},
	number = {2},
	year = {2007},
	pages = {83-98},
	author = {Mardal, Kent-Andre and Nielsen, Bj{\o}rn Fredrik and Cai, Xing and Tveito, Aslak}
}
@misc {Simula.SC.101,
	title = {Parallelisation and Numerical Performance of a 3D Model for Coupled Deformation, Fluid Flow, and Heat Transport in Porous Geological Formations},
	howpublished = {Talk at the Fourth National Conference on Computational Mechanics (MekIT{\textquoteright}07), Trondheim, Norway},
	year = {2007},
	note = {Presented by J. B. Haga},
	month = {may},
	abstract = {In this paper, we present some parallel performance results for a 3D simulator of coupled deformation, fluid flow and heat transfer in sedimentary basins. The model parameters are derived from an industry simulator, with realistic material properties and complex irregular grids of up to 1.5 million nodes with 7.3 million degrees of freedom. We have performed parallelisation on the linear algebra level using the ML algebraic multigrid preconditioner with iterative methods in the Diffpack finite element framework. Implementation and speedup results are presented.},
	author = {Joachim Berdal {Haga} and Are Magnus {Bruaset} and Cai, Xing and Hans Petter {Langtangen} and Osnes, Harald and Skogseid, Jakob}
}
@inproceedings {Simula.SC.18,
	title = {Parallelisation and Numerical Performance of a 3D Model for Coupled Deformation, Fluid Flow and Heat Transfer in Sedimentary Basins},
	journal = {MekIT{\textquoteright}07. Fourth National Conference on Computational Mechanics},
	year = {2007},
	month = {May},
	pages = {151-162},
	publisher = {Tapir Academic Press},
	type = {Conference},
	address = {Trondheim},
	abstract = {In this paper, we present some parallel performance results for a 3D simulator of coupled deformation, fluid flow and heat transfer in sedimentary basins. The model parameters are derived from an industry simulator, with realistic material properties and complex irregular grids of up to 1.5 million nodes with 7.3 million degrees of freedom. We have performed parallelisation on the linear algebra level using the ML algebraic multigrid preconditioner with iterative methods in the Diffpack finite element framework. Implementation and speedup results are presented.},
	isbn = {978-82-519-2235-7},
	author = {Joachim Berdal {Haga} and Are Magnus {Bruaset} and Cai, Xing and Hans Petter {Langtangen} and Osnes, Harald and Skogseid, Jakob},
	editor = {Bj{\o}rn H. {Skallerud} and H. I. {Andersson}}
}
@article {Nielsen.2006.11,
	title = {On the Possibility for Computing the Transmembrane Potential in the Heart With a One Shot Method; an Inverse Problem},
	journal = {Mathematical Biosciences},
	volume = {210},
	number = {2},
	year = {2007},
	pages = {523-553},
	author = {Nielsen, Bj{\o}rn Fredrik and Cai, Xing and Ola Marius {Lysaker}}
}
@misc {Simula.SC.14,
	title = {Simulating Tsunami Propagation on Parallel Computers Using a Hybrid Software Framework},
	howpublished = {Guest lecture given at the University of Stuttgart, March 12},
	year = {2007},
	author = {Cai, Xing}
}
@article {Cai.2006.7,
	title = {A Unified Framework of Multi-Objective Cost Functions for Partitioning Unstructured Finite Element Meshes},
	journal = {Applied Mathematical Modelling},
	volume = {31},
	number = {9},
	year = {2007},
	pages = {1711-1728},
	author = {Cai, Xing and Bouhmala, Noureddine}
}
@article {Sundnes.2006.1,
	title = {On the Computational Complexity of the Bidomain and the Monodomain Models of Electrophysiology},
	journal = {Annals of Biomedical Engineering},
	volume = {34},
	number = {7},
	year = {2006},
	month = {July},
	pages = {1088-1097},
	author = {Sundnes, Joakim and Nielsen, Bj{\o}rn Fredrik and Mardal, Kent-Andre and Cai, Xing and Glenn T. {Lines} and Tveito, Aslak}
}
@misc {Nielsen.2006.3,
	title = {Computational Issues in Heart Modeling},
	howpublished = {Presented at the Johann Radon Institute for Computational and Applied Mathematics, Linz, Austria},
	year = {2006},
	month = {April},
	author = {Nielsen, Bj{\o}rn Fredrik and Ola Marius {Lysaker} and Cai, Xing and Mardal, Kent-Andre and Tarrou, Christian and Mary C. {MacLachlan} and Sundnes, Joakim and Glenn T. {Lines} and Tveito, Aslak}
}
@book {Sundnes.2006.2,
	title = {Computing the Electrical Activity in the Heart},
	year = {2006},
	publisher = {Springer},
	organization = {Springer},
	address = {Berlin Heidelberg},
	abstract = {This book describes mathematical models and numerical techniques for simulating the electrical activity in the heart. The book gives an introduction to the most important models of the field, followed by a detailed description of numerical techniques for the models. Particular focus is on efficient numerical methods for large scale simulations on both scalar and parallel computers. The results presented in the book will be of particular interest to researchers in bioengineering and computational biology, who face the challenge of solving these complex mathematical models efficiently. The book will also serve as a valuable introduction to a new and exciting field for computational scientists and applied mathematicians.},
	isbn = {3-540-33432-7},
	author = {Sundnes, Joakim and Glenn T. {Lines} and Cai, Xing and Nielsen, Bj{\o}rn Fredrik and Mardal, Kent-Andre and Tveito, Aslak}
}
@inbook {Cai.2006.3,
	title = {Full-Scale Simulation of Cardiac Electrophysiology on Parallel Computers},
	booktitle = {Numerical Solution of Partial Differential Equations on Parallel Computers},
	series = {Lecture Notes in Computational Science and Engineering},
	year = {2006},
	pages = {385-411},
	publisher = {Springer},
	organization = {Springer},
	author = {Cai, Xing and Glenn T. {Lines}},
	editor = {Are Magnus {Bruaset} and Tveito, Aslak}
}
@misc {Zhu.2006.1,
	title = {Fusion of Hydraulic and Tracer Tomography for DNAPL Detection},
	howpublished = {Poster presented at AGU Fall Meeting 2006, Dec. 11-15, San Francisco},
	year = {2006},
	author = {Zhu, Junfeng and Jim T. C. {Yeh} and Cai, Xing}
}
@misc {Cai.2006.13,
	title = {Hybrid Parallelization of a 3D Transient Hydraulic Tomography Code},
	howpublished = {Poster presented at Western Pacific Geophysics Meeting 2006, Beijng, July 24-27},
	year = {2006},
	author = {Cai, Xing and Zhu, Junfeng and Zhang, Yeliang and Jim T. C. {Yeh}}
}
@misc {Cai.2006.5,
	title = {A Hybrid Software Framework for Parallel Tsunami Simulations},
	howpublished = {Talk at SIAM PP06 Conference, February 22-24, 2006, San Francisco},
	year = {2006},
	author = {Cai, Xing}
}
@inproceedings {Nielsen.2006.6,
	title = {Identifying Ischemic Heart Disease in Terms of ECG Recordings and an Inverse Problem for the Bidomain Equations; Modeling and Experiments},
	journal = {The Third International Conference "Inverse Problems: Modeling and Simulation"},
	year = {2006},
	pages = {138-140},
	publisher = {Literat{\"u}r Yayincilik Ltd.},
	type = {Conference},
	isbn = {975-04-0381-9},
	author = {Tarrou, Christian and Ola Marius {Lysaker} and Cai, Xing and Mardal, Kent-Andre and Tarrou, Christian and Tomas Syrstad {Ruud} and Mary C. {MacLachlan} and Tveito, Aslak},
	editor = {Kunisch, K. and S. I. {Kabanikhin} and Hasanov, A. and H. T. {Banks}}
}
@inproceedings {Cai.2006.9,
	title = {Improving the Performance of Large-Scale Unstructured PDE Applications},
	journal = {Proceedings of the PARA{\textquoteright}04 Workshop, June 20-23, 2004, Lyngby, Denmark},
	year = {2006},
	pages = {699-708},
	publisher = {Springer},
	type = {Workshop},
	isbn = {3-540-29067-2},
	author = {Cai, Xing},
	editor = {Madsen J. {Dongarra} and Wasniewski, J.}
}
@misc {Cai.2006.12,
	title = {Parallel Computational Methodology for Hydraulic Tomography},
	howpublished = {Poster presented at AGU Fall Meeting 2006, San Francisco, Dec. 11-15},
	year = {2006},
	author = {Cai, Xing and Zhu, Junfeng and Ni, Chuen-Fa and Jim T. C. {Yeh}}
}
@misc {Cai.2006.14,
	title = {Parallel Programming and Computing for Large-Scale Hydraulic Tomography},
	howpublished = {Poster presented at Workshop on Hydraulic Tomography, Boise, June 8-9},
	year = {2006},
	author = {Cai, Xing and Zhu, Junfeng and Jim T. C. {Yeh}}
}
@inproceedings {Cai.2006.4,
	title = {Parallel Simulation of Tsunamis Using a Hybrid Software Approach},
	journal = {Proceedings of the International Conference ParCo 2005, September 13-16, Malaga, Spain},
	year = {2006},
	pages = {383-390},
	publisher = {John von Neumann Institute for Computing},
	type = {Conference},
	isbn = {3-00-017352-8},
	author = {Cai, Xing and Geir Kleivstul {Pedersen} and Hans Petter {Langtangen} and Glimsdal, Sylfest},
	editor = {G. R. {Joubert}}
}
@inbook {Cai.2006.2,
	title = {Parallelizing PDE Solvers Using the Python Programming Language},
	booktitle = {Numerical Solution of Partial Differential Equations on Parallel Computers},
	series = {Lecture Notes in Computational Science and Engineering},
	year = {2006},
	pages = {295-325},
	publisher = {Springer},
	organization = {Springer},
	author = {Cai, Xing and Hans Petter {Langtangen}},
	editor = {Are Magnus {Bruaset} and Tveito, Aslak}
}
@misc {Cai.2006.6,
	title = {Parallelizing Serial PDE Software Using a Generic Approach},
	howpublished = {Seminar at the University of Arizona, February 27},
	year = {2006},
	author = {Cai, Xing}
}
@misc {Alnes.2006.1,
	title = {Python in High Performance Computing},
	howpublished = {Tutorial presented at the Para06 Workshop},
	year = {2006},
	author = {Martin Sandve {Aln{\ae}s} and Are Magnus {Bruaset} and Cai, Xing and Hans Petter {Langtangen} and Mardal, Kent-Andre and Moe, Halvard and Skavhaug, Ola and {\O}deg{\r a}rd, {\r A}smund}
}
@misc {Cai.2006.8,
	title = {Simulating Tsunamis on Parallel Computers},
	howpublished = {Invited talk at Notur 2006 Conference, May 11-12, Bergen, Norway},
	year = {2006},
	month = {May},
	author = {Cai, Xing}
}
@misc {Nielsen.2006.10,
	title = {On the Use of the Bidomain Equations for Computing the Transmembrane Potential Throughout the Heart Wall: an Inverse Problem},
	howpublished = {Presented at the Computers in Cardiology conference in Valencia, Spain},
	year = {2006},
	month = {September},
	author = {Nielsen, Bj{\o}rn Fredrik and Ola Marius {Lysaker} and Tarrou, Christian and Sundnes, Joakim and Cai, Xing and Mardal, Kent-Andre}
}
@inproceedings {Nielsen.2006.9,
	title = {On the Use of the Bidomain Equations for Computing the Transmembrane Potential Throughout the Heart Wall: an Inverse Problem},
	journal = {Computers in Cardiology 2006},
	year = {2006},
	note = {ISSN 0276-6547},
	pages = {797-800},
	publisher = {Computers in Cardiology},
	type = {Conference},
	isbn = {0276-6547},
	author = {Nielsen, Bj{\o}rn Fredrik and Ola Marius {Lysaker} and Tarrou, Christian and Sundnes, Joakim and Cai, Xing and Mardal, Kent-Andre},
	editor = {Murray, A.}
}
@article {Cai.2005.1,
	title = {A Numerical Method for Computing the Profile of Weld Pool Surfaces},
	journal = {International Journal for Computational Methods in Engineering Science and Mechanics},
	volume = {6},
	number = {2},
	year = {2005},
	pages = {115-125},
	author = {Cai, Xing and Jeberg, Peter and Hans Petter {Langtangen}}
}
@techreport {25346,
	title = {An Order Optimal Solver for the Discretized Bidomain Equations},
	year = {2005},
	note = {This technical report is an earlier version of a journal article. The journal article\&nbsp;can be found here:https://www.simula.no/publications/order-optimal-solver-discretized-bidomain-equations},
	publisher = {Simula Research Laboratory},
	author = {Mardal, Kent-Andre and Nielsen, Bj{\o}rn Fredrik and Cai, Xing and Tveito, Aslak}
}
@article {Cai.2005.2,
	title = {A Parallel Multi-Subdomain Strategy for Solving Boussinesq Water Wave Equations},
	journal = {Advances in Water Resources},
	volume = {28},
	number = {3},
	year = {2005},
	month = {March},
	pages = {215-233},
	author = {Cai, Xing and Geir Kleivstul {Pedersen} and Hans Petter {Langtangen}}
}
@misc {Cai.2005.4,
	title = {Parallel Simulation of Tsunamis Using a Hybrid Software Approach},
	howpublished = {Talk at ParCo 2005 Conference, 13 - 16 September, Malaga, Spain},
	year = {2005},
	author = {Cai, Xing and Geir Kleivstul {Pedersen} and Hans Petter {Langtangen} and Glimsdal, Sylfest}
}
@misc {Cai.2005.5,
	title = {Parallelization of PDE Codes},
	howpublished = {Talk at the CMA Workshop on High-Performance Computing in Physics, November 4, Oslo, Norway},
	year = {2005},
	author = {Cai, Xing and Hans Petter {Langtangen}}
}
@article {Cai.2005.3,
	title = {On the Performance of the Python Programming Language for Serial and Parallel Scientific Computations},
	journal = {Scientific Programming},
	volume = {13},
	number = {1},
	year = {2005},
	pages = {31-56},
	author = {Cai, Xing and Hans Petter {Langtangen} and Moe, Halvard}
}
@misc {Cai.2005.7,
	title = {Solving Boussinesq Water Wave Equations on Parallel Computers},
	howpublished = {Talk at the International Workshop on Numerical Ocean Modeling, Oslo, Norway},
	year = {2005},
	month = {January},
	author = {Cai, Xing and Geir Kleivstul {Pedersen} and Hans Petter {Langtangen}}
}
@inbook {SC.5.Cai.2004.a,
	title = {A Numerical Study of Some Parallel Algebraic Preconditioners},
	booktitle = {Parallel and Distributed Scientific and Engineering Computing: Practice and Experience},
	year = {2004},
	note = {An eariler version is included in Proceedings of the IPDPS 2003 Conference, Nice, France, April 2003, IEEE Computer Society},
	pages = {9-21},
	publisher = {Nova Science Publishers},
	organization = {Nova Science Publishers},
	author = {Cai, Xing and Sosonkina, M.},
	editor = {Pan, Y. and L. T. {Yang}}
}
@inbook {SC.5.Cai.2004.b,
	title = {Parallel Solution of the Bidomain Equations With High Resolutions},
	booktitle = {Parallel Computing: Software Technology, Algorithms, Architectures \& Applications},
	year = {2004},
	pages = {837-844},
	publisher = {Elsevier Science},
	organization = {Elsevier Science},
	author = {Cai, Xing and Glenn T. {Lines} and Tveito, Aslak},
	editor = {G. R. {Joubert} and W. E. {Nagel} and F. J. {Peters} and W. V. {Walter}}
}
@misc {SC.8.Cai.2004,
	title = {Using Linux Clusters for Full-Scale Simulation of Cardiac Electrophysiology},
	howpublished = {Invited talk at the fifth annual workshop on Linux Clusters for Super Computing, October 18-21, 2004, Link{\"o}ping, Sweden},
	year = {2004},
	month = {October},
	author = {Cai, Xing}
}
@article {SC.4.Sosonkina.2004,
	title = {Using the Parallel Algebraic Recursive Multilevel Solver in Modern Physical Applications},
	journal = {Future Generation Computer Systems},
	volume = {20},
	number = {3},
	year = {2004},
	note = {An earlier version appeared as Technical Report 2002-106 at the Minnesota Supercomputing Institute},
	pages = {489-500},
	author = {Sosonkina, M. and Saad, Y. and Cai, Xing}
}
@misc {SC.8.Lines.2003,
	title = {Computing the Electrical Activity in the Human Heart},
	howpublished = {Presented at the Centre of Mathematics for Applications, Oslo},
	year = {2003},
	author = {Glenn T. {Lines} and Nielsen, Bj{\o}rn Fredrik and Tveito, Aslak and Sundnes, Joakim and Gr{\o}ttum, P. and Cai, Xing and Mardal, Kent-Andre}
}
@misc {SC.8.Tveito.2003,
	title = {Computing the Electrical Activity in the Human Heart},
	howpublished = {Presented at the European Conference on Numerical Mathematics and Advanced Applications, Prague, Czech Republic},
	year = {2003},
	month = {August},
	author = {Tveito, Aslak and Glenn T. {Lines} and Sundnes, Joakim and Nielsen, Bj{\o}rn Fredrik and Gr{\o}ttum, P. and Cai, Xing and Mardal, Kent-Andre}
}
@misc {SC.8.Tveito.2003.b,
	title = {Computing the Heart},
	howpublished = {Presented at the 21st CAD-FEM users{\textquoteright} meeting 2003 - International congress on FEM technology, Potsdam, Germany},
	year = {2003},
	month = {November},
	author = {Tveito, Aslak and Glenn T. {Lines} and Nielsen, Bj{\o}rn Fredrik and Sundnes, Joakim and Gr{\o}ttum, P. and Cai, Xing and Mardal, Kent-Andre}
}
@inproceedings {SC.6.Jeberg.2003,
	title = {A Flexible Architecture for Welding Simulators Used in Weld Planning},
	journal = {Proceedings of International Conference on Productive Welding in Industrial Applications},
	year = {2003},
	month = {May},
	type = {1},
	address = {Lappenranta, Finland},
	author = {Jeberg, Peter and Cai, Xing and Hans Petter {Langtangen} and Holm, H.}
}
@misc {SC.7.Chen.2003,
	title = {Mathematical and Numerical Modeling of Medical Ultrasound Wave Propagation},
	howpublished = {Invited talk to MACSI-Workshop for Numerical Simulations for Ultrasound Imaging and Inversion, St. Georgen, Austria, pages 8-13},
	year = {2003},
	month = {November 21-22},
	author = {Chen, W. and Bounaim, A. and Cai, Xing and Holm, S. and Tveito, Aslak and {\O}deg{\r a}rd, {\r A}smund}
}
@misc {Cai.2003.2,
	title = {A Numerical Study of Some Parallel Algebraic Preconditioners},
	howpublished = {Talk at the IPDPS 2003 Conference, April 22-26, 2003, Nice, France},
	year = {2003},
	author = {Cai, Xing and Sosonkina, Masha}
}
@inbook {SC.5.Cai.2003.b,
	title = {Overlapping Domain Decomposition Methods},
	booktitle = {Advanced Topics in Computational Partial Differential Equations - Numerical Methods and Diffpack Programming},
	year = {2003},
	pages = {57-95},
	publisher = {Springer},
	organization = {Springer},
	author = {Cai, Xing},
	editor = {Hans Petter {Langtangen} and Tveito, Aslak}
}
@misc {Lines.2003.1,
	title = {Parallel Algorithms for Simulating the Electrical Activity of the Heart},
	howpublished = {Presented at the Dagstuhl seminar Challenges in computational science and engineering},
	year = {2003},
	note = {Presented by Joakim Sundnes, March 2003.},
	month = {March},
	author = {Glenn T. {Lines} and Cai, Xing and Sundnes, Joakim}
}
@inbook {SC.5.Cai.2003.a,
	title = {Parallel Computing},
	booktitle = {Advanced Topics in Computational Partial Differential Equations - Numerical Methods and Diffpack Programming},
	series = {Lecture Notes in Computational Science and Engineering},
	year = {2003},
	pages = {1-55},
	publisher = {Springer},
	organization = {Springer},
	author = {Cai, Xing and Acklam, E. and Hans Petter {Langtangen} and Tveito, Aslak},
	editor = {Hans Petter {Langtangen} and Tveito, Aslak}
}
@inbook {SC.5.Cai.2003.c,
	title = {Performance Modeling of PDE Solvers},
	booktitle = {Advanced Topics in Computational Partial Differential Equations - Numerical Methods and Diffpack Programming},
	series = {Lecture Notes in Computational Science and Engineering},
	year = {2003},
	pages = {361-399},
	publisher = {Springer},
	organization = {Springer},
	author = {Cai, Xing and Are Magnus {Bruaset} and Hans Petter {Langtangen} and Glenn T. {Lines} and Samuelsson, K. and Shen, W. and Tveito, Aslak and Zumbusch, G.},
	editor = {Hans Petter {Langtangen} and Tveito, Aslak}
}
@misc {Cai.2003.1,
	title = {Toward Extremely High-Resolution Simulation of Human Heart},
	howpublished = {Talk at the ParCo 2003 Conference, 2 - 5 September 2003, Dresden, Germany},
	year = {2003},
	author = {Cai, Xing and Glenn T. {Lines} and Tveito, Aslak}
}
@misc {SC.8.Cai.2002,
	title = {Developing Parallel Object-Oriented Simulation Codes in Diffpack},
	howpublished = {Invited talk at the Fifth World Congress on Computational Mechanics, Vienna, Austria},
	year = {2002},
	note = {Presented by X. Cai},
	month = {July},
	author = {Cai, Xing and Hans Petter {Langtangen}}
}
@inproceedings {SC.5.Cai.2002.a,
	title = {Developing Parallel Object-Oriented Simulation Codes in Diffpack},
	journal = {Proceedings of the Fifth World Congress on Computational Mechanics},
	year = {2002},
	note = {ISBN 3-9501554-0-6},
	type = {1},
	address = {Vienna University of Technology},
	author = {Cai, Xing and Hans Petter {Langtangen}}
}
@misc {SC.8.Lines.2002,
	title = {Diffpack Simulation of the Electrical Activity in the Heart},
	howpublished = {Invited minisymposium talk at the 20th CAD-FEM User{\textquoteright}s Meeting, Friedrichshafen, Germany},
	year = {2002},
	note = {Presented by A. M. Bruaset},
	month = {October},
	author = {Glenn T. {Lines} and Sundnes, Joakim and Tveito, Aslak and Cai, Xing and Mardal, Kent-Andre and Are Magnus {Bruaset}}
}
@inproceedings {SC.5.Cai.2002.b,
	title = {Enabling Numerical and Software Technologies for Studying the Electrical Activity in Human Heart},
	journal = {Applied Parallel Computing - Advanced Scientific Computing, 6th International Conference, PARA 2002},
	year = {2002},
	pages = {3-17},
	publisher = {Springer-Verlag},
	type = {1},
	address = {Espoo, Finland},
	author = {Cai, Xing and Glenn T. {Lines}},
	editor = {Fagerholm, J.}
}
@inproceedings {SC.5.Cai.2002.c,
	title = {Parallel Iterative Methods in Modern Physical Applications},
	journal = {Computational Science - ICCS 2002},
	year = {2002},
	pages = {345-355},
	publisher = {Springer-Verlag},
	type = {1},
	author = {Cai, Xing and Sosonkina, M. and Saad, Y.},
	editor = {P.M.A. Sloot et {al}}
}
@inproceedings {SC.6.Cai.2001,
	title = {How Modern Programming Techniques Can Greatly Simplify the Development of Parallel Simulation Codes in Computational Mechanics},
	journal = {Proceedings of the MekIT{\textquoteright}01 Conference},
	year = {2001},
	publisher = {Tapir},
	type = {1},
	author = {Cai, Xing and Hans Petter {Langtangen}}
}
@misc {SC.8.Cai.2001,
	title = {How Modern Programming Techniques Can Greatly Simplify the Development of Parallel Simulation Codes in Computational Mechanics},
	howpublished = {Talk at the National Conference on Computational Mechanics (MekIT{\textquoteright}01), Trondheim, Norway},
	year = {2001},
	note = {Presented by X. Cai},
	month = {May},
	author = {Cai, Xing and Hans Petter {Langtangen}}
}
@techreport {SC.7.Lines.2001,
	title = {A Parallel Solution of the Bidomain Equations Modeling the Electrical Activity of the Heart},
	year = {2001},
	publisher = {Simula Research Laboratory},
	author = {Glenn T. {Lines} and Cai, Xing and Tveito, Aslak}
}
@inproceedings {SC.5.Bouhmala.2001,
	title = {Partition of Unstructured Finite Element Meshes by a Multilevel Approach},
	journal = {Applied Parallel Computing - New Paradigms for HPC in Industry and Academia, 5th International Conference, PARA 2000},
	year = {2001},
	pages = {187-195},
	publisher = {Springer-Verlag},
	type = {1},
	address = {Bergen, Norway},
	author = {Bouhmala, Noureddine and Cai, Xing},
	editor = {S{\o}revik et {al}}
}
@inproceedings {SC.5.Cai.2001,
	title = {On the Performance of PC Clusters in Solving Partial Differential Equations},
	journal = {Proceedings of the Tenth SIAM Conference on Parallel Processing for Scientific Computing},
	year = {2001},
	type = {1},
	author = {Cai, Xing and {\O}deg{\r a}rd, {\r A}smund}
}
@inproceedings {SC.5.Langtangen.2001.a,
	title = {A Software Framework for Easy Parallelization of PDE Solvers},
	journal = {Proceedings of Parallel Computational Fluid Dynamics 2000},
	year = {2001},
	publisher = {North Holland},
	type = {1},
	author = {Hans Petter {Langtangen} and Cai, Xing},
	editor = {C. B. {Jensen} and Kvamsdal, T. and H. I. {Andersson} and Pettersen, B. and Ecer, A. and P{\'e}riaux, J. and Satofuka, N. and Fox, P.}
}
@inproceedings {SC.5.Cai.2000.b,
	title = {An Object-Oriented Software Framework for Building Parallel Navier-Stokes Solvers},
	journal = {Parallel Computational Fluid Dynamics},
	year = {2000},
	pages = {147-154},
	publisher = {Elsevier},
	type = {1},
	author = {Cai, Xing and Hans Petter {Langtangen} and Munthe, O.},
	editor = {Keyes et {al}}
}
@article {SC.4.Cai.2000,
	title = {Parallel Multilevel Methods With Adaptivity on Unstructured Grids},
	journal = {Computing and Visualization in Science},
	volume = {3},
	number = {3},
	year = {2000},
	pages = {133-146},
	author = {Cai, Xing and Samuelsson, K.}
}
@inproceedings {SC.5.Cai.2000.a,
	title = {Parallel Simulation of 3D Nonlinear Acoustic Fields on a Linux-Cluster},
	journal = {Proceedings of 2nd IEEE International Conference on Cluster Computing, Germany},
	year = {2000},
	pages = {185-192},
	publisher = {IEEE},
	type = {1},
	author = {Cai, Xing and {\O}deg{\r a}rd, {\r A}smund}
}
@misc {SC.8.Langtangen.2000.a,
	title = {A Software Framework for Easy Parallelization of PDE Solvers},
	howpublished = {Keynote lecture at the Parallel CFD 2000 Conference, Trondheim, Norway},
	year = {2000},
	note = {Presented by H. P. Langtangen},
	month = {May},
	author = {Hans Petter {Langtangen} and Cai, Xing}
}
@misc {SC.8.Langtangen.2000.b,
	title = {A Software Strategy for Easy Parallelization of Sequential PDE Solvers},
	howpublished = {Talk at the minisymposium on Modern Software Aspects for PDE Solvers (organized by H. P. Langtangen and Stefan Turek (University of Dortmund)) at the IMACS 2000 Conference, Lausanne, Switzerland},
	year = {2000},
	note = {Presented by H. P. Langtangen},
	month = {August},
	author = {Hans Petter {Langtangen} and Cai, Xing}
}
@article {SC.4.Cai.1999,
	title = {An Analysis of a Preconditioner for the Discretized Pressure Equation Arising in Reservoir Simulation},
	journal = {IMA Journal of Numerical Analysis},
	volume = {19},
	number = {2},
	year = {1999},
	pages = {291-316},
	author = {Cai, Xing and Nielsen, Bj{\o}rn Fredrik and Tveito, Aslak}
}
@misc {SC.8.Cai.1999,
	title = {An Object-Oriented Software Framework for Building Parallel Navier-Stokes Solvers},
	howpublished = {Talk at Parallel CFD{\textquoteright}99, Williamsburg, Virgina, USA},
	year = {1999},
	note = {Presented by X. Cai},
	month = {May},
	author = {Cai, Xing and Hans Petter {Langtangen} and Munthe, O.}
}
@inproceedings {SC.5.Cai.1999,
	title = {Two Object-Orientated Approaches to the Parallelization of Diffpack},
	journal = {Proceedings of the HiPer{\textquoteright}99 Conference},
	year = {1999},
	type = {1},
	author = {Cai, Xing}
}
@article {SC.4.Cai.1998.b,
	title = {Application of Cauchy Integrals and Singular Integral Equations in Scattered Data Problems},
	journal = {BIT},
	volume = {38},
	year = {1998},
	pages = {242-255},
	author = {Cai, Xing and Mehlum, Even}
}
@inproceedings {SC.5.Cai.1998.b,
	title = {Domain Decomposition in High-Level Parallelization of PDE Codes},
	journal = {Proceedings of the 11th international conference on Domain Decomposition Methods},
	year = {1998},
	type = {1},
	author = {Cai, Xing}
}
@article {SC.4.Cai.1998.a,
	title = {A Finite Element Method for Fully Nonlinear Water Waves},
	journal = {J. Comput. Phys.},
	volume = {143},
	number = {2},
	year = {1998},
	pages = {544-568},
	author = {Cai, Xing and Hans Petter {Langtangen} and Nielsen, Bj{\o}rn Fredrik and Tveito, Aslak}
}
@phdthesis {SC.3.Cai.1998,
	title = {Numerical Methods for Partial Differential Equations and Their Object-Oriented Parallel Implementations},
	year = {1998},
	school = {Department of Informatics, University of Oslo},
	type = {phd},
	author = {Cai, Xing}
}
@inproceedings {SC.5.Cai.1998.a,
	title = {Numerical Simulation of 3D Fully Nonlinear Water Waves on Parallel Computers},
	journal = {Applied Parallel Computing - Large Scale Scientific and Industrial Problems, 4th International Conference, PARA{\textquoteright}98},
	year = {1998},
	pages = {48-55},
	publisher = {Springer-Verlag},
	type = {1},
	address = {Ume{\r a}, Sweden},
	author = {Cai, Xing},
	editor = {K{\r a}gstr{\o}m, B.}
}
@techreport {SC.7.Cai.1998,
	title = {Performance Modeling of PDE Solvers},
	number = {1998-3},
	year = {1998},
	publisher = {Department of Informatics, University of Oslo},
	author = {Cai, Xing and Are Magnus {Bruaset} and Hans Petter {Langtangen} and Glenn T. {Lines} and Samuelsson, K. and Shen, W. and Tveito, Aslak and Zumbusch, G.}
}
@misc {SC.7.Cai.1997,
	title = {Animation of Wave Forces on Offshore Installations in IRIS Explorer},
	howpublished = {Render Issue 8 - The newsletter for IRIS Explorer users},
	year = {1997},
	author = {Cai, Xing and Mehlum, Even}
}
@misc {SC.8.Bruaset.1997.b,
	title = {Design Issues and Recent Developments in Diffpack},
	howpublished = {Invited minisymposium talk at the SIAM Annual meeting, Stanford University, California, USA},
	year = {1997},
	note = {Presented by A. M. Bruaset},
	month = {July},
	author = {Are Magnus {Bruaset} and Cai, Xing and Hans Petter {Langtangen} and Tveito, Aslak and G. W. {Zumbusch}}
}
@misc {SC.8.Bruaset.1997.c,
	title = {Diffpack: an Object-Oriented Software Environment for Scientific Computing},
	howpublished = {Invited minisymposium talk at the Fourth US National Congress on Computational Mechanics, San Fransisco},
	year = {1997},
	note = {Presented by X. Cai},
	month = {August},
	author = {Are Magnus {Bruaset} and Cai, Xing and Hans Petter {Langtangen} and Tveito, Aslak}
}
@inproceedings {SC.6.Bruaset.1997.b,
	title = {Numerical Solution of PDEs on Parallel Computers Utilizing Sequential Simulators},
	journal = {Scientific Computing in Object-Oriented Parallel Environments},
	year = {1997},
	pages = {161-168},
	publisher = {Springer-Verlag},
	type = {1},
	author = {Are Magnus {Bruaset} and Cai, Xing and Hans Petter {Langtangen} and Tveito, Aslak},
	editor = {Ishikawa, Y. and R. R. {Oldehoeft} and J. V. W. {Reynders} and Tholburn, M.}
}
@misc {SC.8.Bruaset.1997.e,
	title = {Numerical Solution of PDEs on Parallel Computers Utilizing Sequential Simulators},
	howpublished = {Talk at the ISCOPE Conference 1997, California},
	year = {1997},
	note = {Presented by X. Cai},
	month = {December},
	author = {Are Magnus {Bruaset} and Cai, Xing and Hans Petter {Langtangen} and Tveito, Aslak}
}
@inbook {SC.5.Cai.1996,
	title = {Two Fragments of a Method for Fully Nonlinear Simulations of Water Waves},
	booktitle = {Waves and Nonlinear Processesin Hydrodynamics},
	year = {1996},
	pages = {37-50,},
	publisher = {Kluwer Academic Publishers},
	organization = {Kluwer Academic Publishers},
	author = {Cai, Xing and Mehlum, Even},
	editor = {Grue, J. and Gjevik, Bj{\o}rn and Weber, J.E.}
}
@misc {Nielsen.1995.1,
	title = {A Preconditioner for the Pressure Equation in Reservoir Simulation},
	howpublished = {Presented at Institut f{\"u}r Mathematik, Johannes Kepler Universit{\"a}t in Linz, Austria},
	year = {1995},
	author = {Nielsen, Bj{\o}rn Fredrik and Cai, Xing and Tveito, Aslak}
}
@misc {SC.8.Cai.1995,
	title = {A Preconditioner for the Pressure Equation in Reservoir Simulation},
	howpublished = {Presented at Institut f{\"u}r Mathematik, Johannes Kepler Universit{\"a}t in Linz, Austria},
	year = {1995},
	month = {October},
	author = {Nielsen, Bj{\o}rn Fredrik and Cai, Xing and Tveito, Aslak}
}
@techreport {SC.7.Cai.1994,
	title = {A B-Spline Package in C++},
	number = {STF33 A94048},
	year = {1994},
	publisher = {SINTEF},
	author = {Cai, Xing and Hans Petter {Langtangen}}
}
