This paper considers a practical mobile edge computing (MEC) system, where edge server does not preinstall the program required to perform user offloaded computing tasks. A partial program offloading (PPO) scheme is proposed, which can divide a user program into two parts, where the first part is executed by the user itself and the second part is transferred to an edge server for remote execution. However, the execution of the latter part requires the results of the previous part (called intermediate result) as the input. We aim to minimize the overall time consumption of a multi-server MEC system to complete all user offloaded tasks. It is modeled as a mixed integer nonlinear programming (MINLP) problem which considers user-and-server association, program partitioning, and communication resource allocation in a joint manner. An effective algorithm is developed to solve the problem by exploiting its structural features. First, the task completion time of a single server is minimized given the computing workload and available resource. Then, the working time of the edge servers are balanced by updating user-and-server association and communication resource allocation. Numerical results show that significant performance improvement can be achieved by the proposed scheme.