Shared memory multiprocessors, chip multiprocessors, multicore processors, etc. provide for multiple processing elements, where each processing element may execute, in parallel, one or more subtask(s) from a single multithreaded application. These types of processors are generally well suited for network applications. For instance the chip multiprocessor may execute a network application that processes data associated with packets that pass through multiple subtasks across the multiple processors on the chip multiprocessor. Data may be generated by one subtask in the multithreaded application and accessed by the same or different subtasks in the multithreaded application.