This Article 
 Bibliographic References 
 Add to: 
Optimistic Make (Software Design)
February 1992 (vol. 41 no. 2)
pp. 207-217

The notion of encapsulations is introduced as the basic construct used to support optimistic make (a software tool). The authors describe the implementation of optimistic make in the V-System on a collection of SUN workstations. Statistics measured from this implementation are used to synthesize a workload for a discrete-event simulation, and to validate the simulation's results. The simulation shows a speedup distribution over pessimistic make with a median of 1.72 and a mean of 8.28. The speedup distribution is strongly dependent on the ratio between the target out-of-date times and the command execution times. With faster machines the median of the speedup distribution grows to 5.1, and then decreases again.

[1] E. H. Baalbergen, "Design and implementation of parallel make,"Comput. Syst., vol. 1, no. 2, pp. 135-158, Spring 1988.
[2] R. G. Bubenik, "Optimistic computation," Ph.D. dissertation, Rice Univ., May 1990.
[3] F. W. Burton, "Speculative computation, parallelism, and functional programming,"IEEE Trans. Comput., vol. C-34, pp. 1190-1193, Dec. 1985.
[4] David Cheriton, "The V Distributed System,"Comm. ACM, Vol. 31, No. 3, Mar. 1988, pp. 314-333.
[5] D. R. Cheriton and W. Zwaenepoel, "Distributed process groups in the V kernel,"ACM Trans. Comput. Syst., vol. 3, no. 2, pp. 77-107, May 1985.
[6] B. Cmelik, "Concurrent make: The design and implementation of a distributed program in Concurrent C," inConcurrent C Project, AT&T Bell Laboratories, Murray Hill, NJ, 1986.
[7] DYNIX, DYNIX Make Manual Page, inDYNIX Programmer's Manual--Revision 1.15. Aug. 1987.
[8] D. Eager, E. Lazowska, and J. Zahorjan, "Adaptive load sharing in homogeneous distributed systems,"IEEE Trans. Software Eng., vol. SE-12, no. 5, pp. 662-675, May 1986.
[9] S. Feldman, "Make--A computer program for maintaining computer programs,"Software Practice and Experience, vol. 9, no. 4, pp. 255-265, Apr. 1979.
[10] G. S. Fowler, "The fourth generation make," inProc. 1985 Summer USENIX Conf., June 1985, pp. 159-174.
[11] R. H. Halstead, "Parallel symbolic computing,"IEEE Comput. Mag., vol. 19, pp. 35-43, Aug. 1986.
[12] P. Hudak and L. Smith, "Para-functional programming: A paradigm for programming multiprocessor systems," inProc. Thirteenth Annu. Symp. Principles of Programming Languages, Jan. 1986, pp. 243-254.
[13] A. Hume, "Mk: A successor to make," Tech. Rep. 141, AT&T Bell Laboratories, Murray Hill, NJ, Nov. 1987.
[14] D. B. Johnson and W. Zwaenepoel, "Recovery in distributed systems using optimistic message logging and checkpointing,"J. Algorithms, vol. 11, no. 3, pp. 462-491, Sept. 1990.
[15] M. W. Mutka and M. Livny, "Scheduling remote processing capacity in a workstation-processor bank network," inProc. Seventh-Int. Conf. Distributed Comput. Syst., Sept. 1987, pp. 2-9.
[16] J. L. Peterson and A. Silberschatz,Operating System Concepts. Reading, MA: Addison-Wesley, 1985.
[17] E. S. Roberts and J. R. Ellis, "Parmake and Dp: Experience with a distributed, parallel implementation of make," inProc. Second Workshop Large-Grained Parallelism. Available as Special Report CMU/SEI-87- SR-5, Carnegie-Mellon Univ. Software Engineering Institute, Pittsburgh PA, Oct. 1987.
[18] G. Ross, "A practical environment for C programming," inProc. ACM SIGSOFT/SIGPLAN Software Eng. Symp. Practical Software Development Environments, Jan. 1987, pp. 42-48. Also available asSIGPLAN Notices, vol. 22, no. 1, Jan. 1987.
[19] R. E. Strom and S. Yemini, "Optimistic recovery in distributed systems,"ACM Trans. Comput. Syst., vol. 3, no. 3, pp. 204-226, Aug. 1985.

Index Terms:
encapsulations; optimistic make; software tool; V-System; SUN workstations; discrete-event simulation; pessimistic make; target out-of-date times; command execution times; software engineering; software tools.
R. Bubenik, W. Zwaenepoel, "Optimistic Make (Software Design)," IEEE Transactions on Computers, vol. 41, no. 2, pp. 207-217, Feb. 1992, doi:10.1109/12.123396
Usage of this product signifies your acceptance of the Terms of Use.