<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def compute_objective_value(objective_func, parameters, data=None, cl_runtime_info=None):
 """Calculate and return the objective function value of the given model for the given parameters. Args: objective_func (mot.lib.cl_function.CLFunction):
 A CL function with the signature: .. code-block:: c double <func_name>(local const mot_float_type* const x, void* data, local mot_float_type* objective_list); parameters (ndarray):
 The parameters to use in the evaluation of the model, an (d, p) matrix with d problems and p parameters. data (mot.lib.kernel_data.KernelData):
 the user provided data for the ``void* data`` pointer. cl_runtime_info (mot.configuration.CLRuntimeInfo):
 the runtime information Returns: ndarray: vector matrix with per problem the objective function value """

    return objective_func.evaluate({'data': data, 'parameters': Array(parameters, 'mot_float_type', mode='r')},
                                   parameters.shape[0], use_local_reduction=True, cl_runtime_info=cl_runtime_info)