Learn More
Fixing software bugs has always been an important and time-consuming process in software development. Fixing concurrency bugs has become especially critical in the multicore era. However, fixing concurrency bugs is challenging, in part due to non-deterministic failures and tricky parallel reasoning. Beyond correctly fixing the original problem in the(More)
Developers frequently use inefficient code sequences that could be fixed by simple patches. These inefficient code sequences can cause significant performance degradation and resource waste, referred to as performance bugs. Meager increases in single threaded performance in the multi-core era and increasing emphasis on energy efficiency call for more effort(More)
Fixing concurrency bugs (or "crugs") is critical in modern software systems. Static analyses to find crugs such as data races and atomicity violations scale poorly, while dynamic approaches incur high run-time overheads. Crugs manifest only under specific execution interleavings that may not arise during in-house testing, thereby demanding a lightweight(More)
Sequential and concurrency bugs are widespread in deployed software. They cause severe failures and huge financial loss during production runs. Tools that diagnose production-run failures with low overhead are needed. The state-of-the-art diagnosis techniques use software instrumentation to sample program properties at run time and use off-line statistical(More)
Concurrency bugs are caused by non-deterministic interleavings between shared memory accesses. Their effects propagate through data and control dependences until they cause software to crash, hang, produce incorrect output, etc. The lifecycle of a bug thus consists of three phases: (1) triggering, (2) propagation, and (3) failure. Traditional techniques(More)
Cancer stem cells (CSCs) are capable of continuous proliferation and self-renewal and are proposed to play significant roles in oncogenesis, tumor growth, metastasis and cancer recurrence. CSCs are considered derived from normal stem cells affected by the tumor microenvironment although the mechanism of development is not clear yet. In 2007, Yamanaka's(More)
We investigated the functional role of eosinophil cationic protein (ECP) in regulating cardiomyogenesis using mouse P19CL6 embryonic carcinoma cells. ECP was confirmed to accelerate the cardiomyocyte differentiation of P19CL6 cells by enhancing the rate and area size of beating of cardiomyocyte and by facilitating the expression of cardiomyocyte-specific(More)
Concurrency bugs are becoming widespread with the emerging ubiquity of multicore processors and multithreaded software. They manifest during production runs and lead to severe losses. Many effective concurrency-bug detection tools have been built. However, the dependability of multi-threaded software does not improve until these bugs are handled statically(More)