Barely acceptable block I/O performance prevents virtualization from being widely used in the HighPerformance Computing field. Although the virtio paravirtual framework brings great I/O performance improvement, there is a sharp performance degradation when accessing high-performance NAND-flash-based devices in the virtual machine due to their data parallel design. The primary cause of this fact is the deficiency of block I/O parallelism in hypervisor, such as KVM and Xen. In this paper, we propose a novel design of block I/O layer for virtualization, named VBMq. VBMq is based on virtio paravirtual I/O model, aiming to solve the block I/O parallelism issue in virtualization. It uses multiple dedicated I/O threads to handle I/O requests in parallel. In the meanwhile, we use polling mechanism to alleviate overheads caused by the frequent context switches of the VM's notification to and from its hypervisor. Each dedicated I/O thread is assigned to a non-ovedapping core to improve performance by avoiding unnecessary scheduling. In addition, we configure CPU affinity to optimize I/O completion for each request. The CPU affinity setting is very helpful to reduce CPU cache miss rate and increase CPU efficiency. The prototype system is based on Linux 4.1 kernel and QEMU 2.3.1. Our measurements show that the proposed method scales graciously in the multi-core environment, and provides performance which is 39.6x better than the baseline at most, and approaches bare-metal performance.
Random needle embroidery(RNE) is a graceful art enrolled in the world intangible cultural heritage. In this paper, we study the stitch layout problem and propose a controllable stitch layout strategy for RNE. Using our method, a user can easily change the layout styles by adjusting several high-level layout parameters. This approach has three main features: firstly, a stitch layout rule containing low-level stitch attributes and high-level layout parameters is designed; secondly, a stitch neighborhood graph is built for each region to model the spatial relationship among stitches; thirdly, different stitch attributes(orientations, lengths, and colors) are controlled using different reaction-diffusion processes based on a stitch neighborhood graph. Moreover, our method supports the user in changing the stitch orientation layout by drawing guide curves interactively. The experimental results show its capability for reflecting various stitch layout styles and flexibility for user interaction.