EDBT 2026 Demo / reviewers in the wild / expert
Xinan Tang
dblp:46/2724
· DBLP profile ↗
12ranked-venue papers
4as first author
0since 2021 · last 2011
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 12 · 4 first-author
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Computer networks
2 papers |
Routing and switching · 60% Internet architecture and protocols · 40% | |
| Computer architecture, parallel and distributed computing, and storage systems
2 papers |
Memory systems · 57% Processor architecture and microarchitecture · 43% |
Topics — the 5 heaviest of 5, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Internet architecture and protocols › packet processing
packet classification |
0.1 | 1 | 2008 | Scalable packet classification using interpreting: a cross-platform multi-core solution · PPoPP 2008 |
Routing and switching › packet forwarding
IP forwarding |
0.1 | 1 | 2006 | High-performance IPv6 forwarding algorithm for multi-core and multithreaded network processor · PPoPP 2006 |
Routing and switching › IP lookup
longest prefix matching |
0.1 | 1 | 2006 | High-performance IPv6 forwarding algorithm for multi-core and multithreaded network processor · PPoPP 2006 |
Memory systems › memory hierarchy
memory hierarchy optimization |
0.0 | 1 | 2008 | Scalable packet classification using interpreting: a cross-platform multi-core solution · PPoPP 2008 |
Processor architecture and microarchitecture › special-purpose processor
network processor |
0.0 | 1 | 2006 | High-performance IPv6 forwarding algorithm for multi-core and multithreaded network processor · PPoPP 2006 |
Methods — techniques the papers use, named apart from their topics
interpreter-based execution · 0.2data partitioning · 0.2CISC-style instruction encoding · 0.2triec algorithm · 0.1task partitioning · 0.1latency hiding · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2011 | Building High-Performance Application Protocol Parsers on Multi-core ArchitecturesabstractParsing packet payloads according to the syntax and semantics of an application protocol is a key step in analyzing network traffic. However, it is still a challenge to fulfill this task with high speed(10Gbps+) because parsing packets through deep-content analysis to build a corresponding syntax tree requires tremendous computing resources. Multi-core architectures provide a viable solution for building high-performance parsers for application protocols. Existing sequential application protocol parsers are hard to be reused, and building a new protocol parser from scratch is error-prone and time-consuming. This paper proposes a general and efficient approach to building high-performance parallel application protocol parsers on multi-core platforms. First, the open-source lexical analyzer FLEX is used to describe a protocol and generate a sequential parser. Then a source-to-source translation is performed to transform the sequential parser into a parallel one. Finally, an efficient parallel run-time system is built by employing lock-free design principles from top to bottom to support multi-threaded execution on multi-core processors. Experimental results show that our parsers achieve nearly 20Gbps for average HTTP packets and 5Gbps for the challenging smaller FIX packets. Kai Zhang 0006, Junchang Wang, Bei Hua, Xinan Tang |
ICPADS | 4 |
| 2009 | Practice of parallelizing network applications on multi-core architecturesabstractThe industry wide shift to multi-core architectures arouses great interests in parallelizing sequential applications. However, it is very difficult to parallelize fine-grained applications for multi-core architectures due to insufficient hardware support of fast communication and synchronization. Fortunately, network applications can be decomposed into pipelined structures that are amenable to streaming based parallel processing. To realize the potential of pipelining on multi-core architectures, it requires reevaluating the basic tradeoffs in parallel processing, including the ones between load balance and data locality and between general lock mechanisms and special lock-free data structures. This paper presents the practice of building a high-performance multi-core based network processing platform in which connection-affinity and lock-free design principles are applied effectively for better data locality and faster core-to-core synchronization and communication.We parallelize a complete Layer 2 to Layer 7 (L2-L7) network processing system on an Intel Core 2 Quad processor, including a TCP/IP stack based on Libnids (L2-L4) and a port-independent protocol identification engine by deep packet inspection (L7+). Furthermore, we develop a compiling method to transform sequential network applications to parallel ones to enable those applications to run on multi-core architectures. Our experience suggests that (1) fine-grained pipelining can be a good software solution for parallelizing network applications on multi-core architectures if connection-affinity and lock-free are used as the first design principles; (2) a delicate partitioning scheme is required to map pipelined structures onto specific multi-core architecture; (3) an automatic parallelization approach can work if domain knowledge is considered in the parallelizing process. Our multi-core based network processing platform can deliver not only 6Gbps processing speed for large packet sizes but also more challenging 2Gbps speed for smaller packets. Junchang Wang, Haipeng Cheng, Bei Hua, Xinan Tang |
ICS | 4 |
| 2008 | Scalable packet classification using interpreting: a cross-platform multi-core solutionabstractPacket classification is an enabling technology to support advanced Internet services. It is still a challenge for a software solution to achieve 10Gbps (line-rate) classification speed. This paper presents a classification algorithm that can be efficiently implemented on a multi-core architecture with or without cache. The algorithm embraces the holistic notion of exploiting application characteristics, considering the capabilities of the CPU and the memory hierarchy, and performing appropriate data partitioning. The classification algorithm adopts two stages: searching on a reduction tree and searching on a list of ranges. This decision is made based on a classification heuristic: the size of the range list is limited after the first stage search. Optimizations are then designed to speed up the two-stage execution. To exploit the speed gap (1) between the CPU and external memory; (2) between internal memory (cache) and external memory, an interpreter is used to trade the CPU idle cycles with demanding memory access requirements. By applying the CISC style of instruction encoding to compress the range expressions, it not only significantly reduces the total memory requirement but also makes effective use of the internal memory (cache) bandwidth. We show that compressing data structures is an effective optimization across the multi-core architectures. Haipeng Cheng, Bei Hua, Xinan Tang |
PPoPP | 4 |
| 2008 | High-performance packet classification algorithm for multithreaded IXP network processorabstractPacket classification is crucial for the Internet to provide more value-added services and guaranteed quality of service. Besides hardware-based solutions, many software-based classification algorithms have been proposed. However, classifying at 10 Gbps speed or higher is a challenging problem and it is still one of the performance bottlenecks in core routers. In general, classification algorithms face the same challenge of balancing between high classification speed and low memory requirements. This paper proposes a modified recursive flow classification (RFC) algorithm, Bitmap-RFC, which significantly reduces the memory requirements of RFC by applying a bitmap compression technique. To speed up classifying speed, we exploit the multithreaded architectural features in various algorithm development stages from algorithm design to algorithm implementation. As a result, Bitmap-RFC strikes a good balance between speed and space. It can significantly keep both high classification speed and reduce memory space consumption. This paper investigates the main NPU software design aspects that have dramatic performance impacts on any NPU-based implementations: memory space reduction , instruction selection , data allocation , task partitioning , and latency hiding . We experiment with an architecture-aware design principle to guarantee the high performance of the classification algorithm on an NPU implementation. The experimental results show that the Bitmap-RFC algorithm achieves 10 Gbps speed or higher and has a good scalability on Intel IXP2800 NPU. Bei Hua, Nenghai Yu, Xinan Tang |
ACM Trans. Embed. Comput. Syst. | 5 |
| 2006 | High-performance packet classification algorithm for many-core and multithreaded network processorabstractPacket classification is crucial for the Internet to provide more value-added services and guaranteed quality of service. Besides hardware-based solutions, many software-based classification algorithms have been proposed. However, classifying at 10Gbps speed or higher is a challenging problem and it is still one of the performance bottlenecks in core routers. In general, classification algorithms face the same challenge of balancing between high classification speed and low memory requirements. This paper proposes a modified Recursive Flow Classification (RFC) algorithm, Bitmap-RFC, which significantly reduces the memory requirements of RFC by applying a bitmap compression technique. To speed up classifying speed, we experiment on exploiting the architectural features of a many-core and multithreaded architecture from algorithm design to algorithm implementation. As a result, Bitmap-RFC strikes a good balance between speed and space. It can not only keep high classification speed but also reduce memory space significantly.This paper investigates the main NPU software design aspects that have dramatic performance impacts on any NPU-based implementations: memory space reduction, instruction selection, data allocation, task partitioning, and latency hiding. We experiment with an architecture-aware design principle to guarantee the high performance of the classification algorithm on an NPU implementation. The experimental results show that the Bitmap-RFC algorithm achieves 10Gbps speed or higher and has a good scalability on Intel IXP2800 NP. Bei Hua, Xianghui Hu, Xinan Tang |
CASES | 4 |
| 2006 | High-performance IPv6 forwarding algorithm for multi-core and multithreaded network processorabstractIP forwarding is one of the main bottlenecks in Internet backbone routers, as it requires performing the longest-prefix match at 10Gbps speed or higher. IPv6 forwarding further exacerbates the situation because its search space is quadrupled. We propose a high-performance IPv6 forwarding algorithm TrieC, and implement it efficiently on the Intel IXP2800 network processor (NPU). Programming the multi-core and multithreaded NPU is a daunting task. We study the interaction between the parallel algorithm design and the architecture mapping to facilitate efficient algorithm implementation. We experiment with an architecture-aware design principle to guarantee the high performance of the resulting algorithm.This paper investigates the main software design issues that have dramatic performance impacts on any NPU based implementation: memory space reduction, instruction selection, data allocation, task partitioning, latency hiding, and thread synchronization. In the paper, we provide insight on how to design an NPU-aware algorithm for high-performance networking applications. Based on the detailed performance analysis of the TrieC algorithm, we provide guidance on developing high-performance networking applications for the multi-core and multithreaded architecture. Xianghui Hu, Xinan Tang, Bei Hua |
PPoPP | 2 |
| 2000 | Automatic compiler techniques for thread coarsening for multithreaded architecturesabstractMultithreaded architectures are emerging as an important class of parallel machines. By allowing fast context switching between threads on the same processor, these systems hide communication and synchronization latencies and allow scalable parallelism for dynamic and irregular applications. Thread partitioning is the most important task in compiling high-level languages for multithreaded architectures. Non-preemptive multithreaded architectures, which can be built from off-the-shelf components, require that if a thread issues a potentially remote memory request, then any statement that is dependent upon this request must be in a separate thread. Gary M. Zoppetti, Gagan Agrawal, Lori L. Pollock, José Nelson Amaral, Xinan Tang, Guang R. Gao |
ICS | 5 |
| 1999 | Automatically Partitioning Threads for Multithreaded Architectures
Xinan Tang, Guang R. Gao |
J. Parallel Distributed Comput. | 1 |
| 1998 | Automatically Partitioning Threads Based on Remote PathsabstractIn order to program multithreaded architectures effectively, compiler support to automatically partition programs into threads is essential. This paper proposes a remote-path-based thread partitioning framework, which can generate low-level threads from procedural programs automatically. The framework has been implemented in the EARTH-C compiler, which uses a data dependence graph (DDG) as an intermediate representation for thread partitioning. To make the compiler work fast, a practical O(n/sup 2/) algorithm is designed to build a non-redundant DDG. To generate correct and efficient threaded code, the remote path heuristic is employed to satisfy thread partitioning constraints and to schedule threads to run quickly. Experimental results show that the DDG building algorithm is fast and the remote-path-based heuristic is very effective in partitioning programs into "optimized" threads. Xinan Tang, Guang R. Gao |
ICPADS | 1 |
| 1998 | How "Hard" is Thread Partitioning and How "Bad" is a List Scheduling Based Partitioning Algorithm?abstractArticle Free Access Share on How “hard” is thread partitioning and how “bad” is a list scheduling based partitioning algorithm? Authors: Xinan Tang Department of Electrical and Computer Engineering, University of Delaware, Newark, Delaware Department of Electrical and Computer Engineering, University of Delaware, Newark, DelawareView Profile , Guang R. Gao Department of Electrical and Computer Engineering, University of Delaware, Newark, Delaware Department of Electrical and Computer Engineering, University of Delaware, Newark, DelawareView Profile Authors Info & Claims SPAA '98: Proceedings of the tenth annual ACM symposium on Parallel algorithms and architecturesJune 1998 Pages 130–139https://doi.org/10.1145/277651.277679Published:01 June 1998Publication History 9citation731DownloadsMetricsTotal Citations9Total Downloads731Last 12 Months7Last 6 weeks1 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF Xinan Tang, Guang R. Gao |
SPAA | 1 |
| 1997 | Thread Partitioning and Scheduling Based on Cost ModelabstractThere has been considerable interest in implementing a multithreaded program execution and architecture model on a multiprocessor whose primary processors consist of today's off-the-shelf microprocessors. Unlike some custom-designed multithreaded processor architectures, which can interleave multiple threads concurrently, conventional processors can only execute one thread at a time. This presents a unique and challenging problem to the compiler: partition a program into threads so that it executes both correctly and in minimal time. We present a new heuristic algorithm based on an interesting extension of the classical list scheduling algorithm. Based on a cost model, our algorithm groups instructions into threads by considering the trade-offs among parallelism, latency tolerance, thread switching costs and sequential execution efficiency. The proposed algorithm has been implemented, and its performance measured through experiments on a variety of architecture parameters and a wide ra... Xinan Tang, Kevin B. Theobald, Guang R. Gao |
SPAA | 1 |
| 1995 | A design study of the EARTH multiprocessor
Herbert H. J. Hum, Olivier Maquelin, Kevin B. Theobald, Xinmin Tian, Xinan Tang, Guang R. Gao, Phil Cupryk, Nasser Elmasri, Laurie J. Hendren, Alberto Jimenez, Shoba Krishnan, Andrés Márquez 0001, Shamir Merali, Shashank S. Nemawarkar, Prakash Panangaden, Xun Xue, Yingchun Zhu |
PACT | 5 |