<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def run_parallel(*functions):
 """Runs a series of functions in parallel. Return values are ordered by the order in which their functions were passed. If an exception is raised within one of the processes, that exception will be caught at the process level and raised by the parent process as an ErrorInProcessException, which will track all errors raised in all processes. You can catch the exception raised for more details into the process exceptions: @param functions: The functions to run specified as individual arguments @return: List of results for those functions. Unpacking is recommended if you do not need to iterate over the results as it enforces the number of functions you pass in. @raise: ErrorInProcessException """

    def target(fn):
        def wrapped(results_queue, error_queue, index):
            result = None
            try:
                result = fn()
            except Exception, e:  # Swallow errors or else the process will hang
                error_queue.put(e)
                warnings.warn('Exception raised in parallel threads: {}'.format(e))
            results_queue.put((index, result))
        return wrapped

    errors = Queue()
    queue = Queue()

    jobs = list()
    for i, function in enumerate(functions):
        jobs.append(Process(target=target(function), args=(queue, errors, i)))

    [job.start() for job in jobs]
    [job.join() for job in jobs]

    # Get the results in the queue and put them back in the order in which the function was specified in the args
    results = [queue.get() for _ in jobs]
    results = sorted(results, key=lambda x: x[0])

    if not errors.empty():
        error_list = list()
        while not errors.empty():
            error_list.append(errors.get())
        raise ErrorInProcessException('Exceptions raised in parallel threads: {}'.format(error_list), errors=error_list)
    return [r[1] for r in results]