Knowledge

Programming model

Source 📝

86:, the execution model often must expose features of the hardware in order to achieve high performance. The large amount of variation in parallel hardware causes a concurrent need for a similarly large number of parallel execution models. It is impractical to make a new language for each execution model, hence it is a common practice to invoke the behaviors of the parallel execution model via an API. So, most of the programming effort is done via parallel programming models rather than parallel languages. The terminology around such programming models tends to focus on the details of the hardware that inspired the execution model, and in that insular world the mistaken belief is formed that a programming model is only for the case when an execution model is closely matched to hardware features. 70:
What distinguishes a programming model from a normal library is that the behavior of the call cannot be understood in terms of the language the program is written in. For example, the behavior of calls to the POSIX thread library cannot be understood in terms of the C language. The reason is that the
71:
call invokes an execution model that is different from the execution model of the language. This invocation of an outside execution model is the defining characteristic of a programming
67:
has no behavior in its execution model for input/output or thread behavior. But such behavior can be invoked from C syntax, by making what appears to be a call to a normal C library.
35:
or a particular pattern of code. In this style, there are actually two execution models in play: the execution model of the base
16:
This article is about the definition of the term 'programming model'. For classification of programming languages, see
63:
of the programming model is different from that of the base language in which the code is written. For example, the
151: 47:
is the base language, and Spark is the programming model. Execution may be based on what appear to be
64: 36: 17: 8: 48: 83: 104: 60: 28: 145: 52: 44: 40: 56: 39:
and the execution model of the programming model. An example is
129: 109: 32: 131: 143: 144: 132:"COMP Superscalar Programming Model" 13: 51:calls. Other examples include the 14: 163: 130:Barcelona Supercomputing Center. 102: 75:, in contrast to a programming 123: 96: 1: 89: 7: 10: 168: 15: 65:C programming language 59:. In both cases, the 55:library and Hadoop's 152:Computer programming 37:programming language 18:Programming paradigm 105:"What is MapReduce" 84:parallel computing 25:programming model 159: 136: 135: 127: 121: 120: 118: 117: 100: 167: 166: 162: 161: 160: 158: 157: 156: 142: 141: 140: 139: 128: 124: 115: 113: 101: 97: 92: 61:execution model 29:execution model 21: 12: 11: 5: 165: 155: 154: 138: 137: 122: 94: 93: 91: 88: 31:coupled to an 9: 6: 4: 3: 2: 164: 153: 150: 149: 147: 133: 126: 112: 111: 106: 99: 95: 87: 85: 80: 78: 74: 68: 66: 62: 58: 54: 53:POSIX Threads 50: 46: 42: 38: 34: 30: 26: 19: 125: 114:. Retrieved 108: 98: 81: 76: 72: 69: 24: 22: 116:2020-04-19 90:References 57:MapReduce 146:Category 77:language 49:library 43:where 27:is an 103:IBM. 73:model 41:Spark 45:Java 110:IBM 82:In 33:API 148:: 107:. 79:. 23:A 134:. 119:. 20:.

Index

Programming paradigm
execution model
API
programming language
Spark
Java
library
POSIX Threads
MapReduce
execution model
C programming language
parallel computing
"What is MapReduce"
IBM
"COMP Superscalar Programming Model"
Category
Computer programming

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.