Patents by Inventor Jocelyn Luke Martin
Jocelyn Luke Martin has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 10684781Abstract: A device may include one or more processors. The device may receive program code that identifies operations to be performed with regard to a data set to determine an output value. The device may identify a plurality of read operations corresponding to the operations. The plurality of read operations may be performed to obtain respective inputs of the operations. The device may generate a first data structure that identifies the operations and the plurality of read operations. The device may identify two or more operations, of the operations, that receive a particular input. The device may generate a second data structure that includes a combined operation. The combined operation may be generated based on the two or more operations, and may be associated with fewer read operations than the two or more operations. The device may determine the output value based on the second data structure.Type: GrantFiled: July 21, 2016Date of Patent: June 16, 2020Assignee: The MathWorks, Inc.Inventors: Jocelyn Luke Martin, Penelope L. Anderson, Richard Amos, Edric Mark Ellis, Benjamin Tordoff, Danil Kirsanov, Wei Wang, Thomas P. Lane, Aaron J. Powers, Lucio Andrade-Cetto, Michael A. Procopio
-
Patent number: 9582330Abstract: A method and system is disclosed for providing a distributed technical computing environment for distributing technical computing tasks from a technical computing client to technical computing workers for execution of the tasks on one or more computers systems. Tasks can be defined on a technical computing client, and the tasks organized into jobs. The technical computing client can directly distribute tasks to one or more technical computing workers. Furthermore, the technical computing client can submit tasks, or jobs comprising tasks, to an automatic task distribution mechanism that distributes the tasks automatically to one or more technical computing workers providing technical computing services. The technical computing worker performs technical computing of tasks and the results of the execution of tasks may be provided to the technical computing client. Data associated with the tasks is managed by a programmable interface associated with a data storage repository.Type: GrantFiled: June 9, 2009Date of Patent: February 28, 2017Assignee: The MathWorks, Inc.Inventor: Jocelyn Luke Martin
-
Patent number: 9507634Abstract: A method and system is disclosed for providing a distributed technical computing environment for distributing technical computing tasks from a technical computing client to technical computing workers for execution of the tasks on one or more computers systems. Tasks can be defined on a technical computing client, and the tasks organized into jobs. The technical computing client can directly distribute tasks to one or more technical computing workers. Furthermore, the technical computing client can submit tasks, or jobs comprising tasks, to an automatic task distribution mechanism that distributes the tasks automatically to one or more technical computing workers providing technical computing services. The technical computing worker performs technical computing of tasks and the results of the execution of tasks may be provided to the technical computing client.Type: GrantFiled: April 30, 2014Date of Patent: November 29, 2016Assignee: The MathWorks, Inc.Inventors: Matthew A. Shawver, Jocelyn Luke Martin, Roy E. Lurie, Loren P. Dean, Cleve B. Moler, Eugene F. Mcgoldrick
-
Patent number: 9122488Abstract: A device receives program code, and receives size/type information associated with inputs to the program code. The device determines, prior to execution of the program code and based on the input size/type information, a portion of the program code that is executable by a graphical processing unit (GPU), and determines, prior to execution of the program code and based on the input size/type information, a portion of the program code that is executable by a central processing unit (CPU). The device compiles the GPU-executable portion of the program code to create a compiled GPU-executable portion of the program code, and compiles the CPU-executable portion of the program code to create a compiled CPU-executable portion of the program code. The device provides, to the GPU for execution, the compiled GPU-executable portion of the program code, and provides, to the CPU for execution, the compiled CPU-executable portion of the program code.Type: GrantFiled: June 27, 2014Date of Patent: September 1, 2015Assignee: The MathWorks, Inc.Inventors: Jocelyn Luke Martin, Joseph F. Hicklin
-
Patent number: 8990825Abstract: A device determines a number of portions of processes that require resources associated with the device, and receives resource usage information from the resources. The device also enables negotiations among the processes to determine a number of resources for respective ones of the processes based on the resource usage information, and allocates particular resources to particular portions of the respective ones of the processes based on the negotiations between the processes.Type: GrantFiled: September 30, 2011Date of Patent: March 24, 2015Assignee: The MathWorks, Inc.Inventors: Jocelyn Luke Martin, Christopher T. Newbold
-
Patent number: 8935682Abstract: A device initiates a technical computing environment (TCE), and receives, via the TCE, a program command that permits the TCE to access a graphical processing unit that is remote to the device, where the program command permits the TCE to seamlessly transfer data to the remote GPU. The device transforms, via the TCE, the program command into a program command that is executable by the remote GPU, and provides the transformed program command to the remote GPU for execution. The device also receives, from the remote GPU, one or more results associated with execution of the transformed program command by the remote GPU, and utilizes the one or more results via the TCE.Type: GrantFiled: September 6, 2013Date of Patent: January 13, 2015Assignee: The MathWorks, Inc.Inventors: Halldor N. Stefansson, Edric Ellis, Jocelyn Luke Martin
-
Publication number: 20140310695Abstract: A device receives program code, and receives size/type information associated with inputs to the program code. The device determines, prior to execution of the program code and based on the input size/type information, a portion of the program code that is executable by a graphical processing unit (GPU), and determines, prior to execution of the program code and based on the input size/type information, a portion of the program code that is executable by a central processing unit (CPU). The device compiles the GPU-executable portion of the program code to create a compiled GPU-executable portion of the program code, and compiles the CPU-executable portion of the program code to create a compiled CPU-executable portion of the program code. The device provides, to the GPU for execution, the compiled GPU-executable portion of the program code, and provides, to the CPU for execution, the compiled CPU-executable portion of the program code.Type: ApplicationFiled: June 27, 2014Publication date: October 16, 2014Inventors: Jocelyn Luke MARTIN, Joseph F. HICKLIN
-
Patent number: 8863130Abstract: A system initiates multiple instances of a concurrent computing process, establishes a communication channel among the multiple instances, initiates execution of a computational job on the multiple instances, detects an interrupt request on one of the multiple instances, and terminates execution of the computational job while maintaining communication among the multiple instances via the communication channel.Type: GrantFiled: June 26, 2012Date of Patent: October 14, 2014Assignee: The MathWorks, Inc.Inventors: Edric Ellis, Jocelyn Luke Martin
-
Patent number: 8788316Abstract: A system is configured to receive a task. The task is received over a first network, includes authentication credentials, and is processed using an application. The system is further configured to send the authentication credentials to a licensing server. The authentication credentials are sent over a second network, and are sent prior to processing the task using the application. The system is also configured to receive an authorization. The authorization is received over the second network, and authorizes the application to process the task.Type: GrantFiled: December 6, 2011Date of Patent: July 22, 2014Assignee: The MathWorks, Inc.Inventors: Amol M. Karnik, Christopher Hallgren, Loren Dean, Jocelyn Luke Martin
-
Patent number: 8769510Abstract: A device receives program code, and receives size/type information associated with inputs to the program code. The device determines, prior to execution of the program code and based on the input size/type information, a portion of the program code that is executable by a graphical processing unit (GPU), and determines, prior to execution of the program code and based on the input size/type information, a portion of the program code that is executable by a central processing unit (CPU). The device compiles the GPU-executable portion of the program code to create a compiled GPU-executable portion of the program code, and compiles the CPU-executable portion of the program code to create a compiled CPU-executable portion of the program code. The device provides, to the GPU for execution, the compiled GPU-executable portion of the program code, and provides, to the CPU for execution, the compiled CPU-executable portion of the program code.Type: GrantFiled: September 30, 2010Date of Patent: July 1, 2014Assignee: The MathWorks, Inc.Inventors: Jocelyn Luke Martin, Joseph F. Hicklin
-
Patent number: 8745254Abstract: A communication protocol is provided for processes to send and receive arbitrary data in a concurrent computing environment. The communication protocol enables a process to send or receive arbitrary data without a user or programmer specifying the attributes of the arbitrary data. The communication protocol automatically determines the attributes of the arbitrary data, for example, the type and/or size of the data and sends information on the attributes of the data to a process to which the data is to be sent. Based on the information on the attributes of the data, the receiving process can allocate appropriate memory space for the data to be received.Type: GrantFiled: November 13, 2006Date of Patent: June 3, 2014Assignee: The MathWorks, Inc.Inventors: Edric Ellis, Jocelyn Luke Martin
-
Patent number: 8745624Abstract: A distributed computing system includes a device that creates a job to be performed by one or more workers, where the job includes a group of tasks. The device further encodes the job into a group of portable format files, where each portable format file includes one or more tasks of the group of tasks. Each portable format file may be handled by each scheduler of a group of different schedulers. The device also transfers the group of portable format files via a network of the distributed computing system and sends information related to the job to one scheduler of the group of different schedulers. The information allows the one scheduler to cause the group of portable format files to be distributed to the one or more workers.Type: GrantFiled: August 10, 2007Date of Patent: June 3, 2014Assignee: The Mathworks, Inc.Inventors: Jocelyn Luke Martin, Loren Dean
-
Patent number: 8726278Abstract: A method and system is disclosed for providing a distributed technical computing environment for distributing technical computing tasks from a technical computing client to technical computing workers for execution of the tasks on one or more computers systems. Tasks can be defined on a technical computing client, and the tasks organized into jobs. The technical computing client can directly distribute tasks to one or more technical computing workers. Furthermore, the technical computing client can submit tasks, or jobs comprising tasks, to an automatic task distribution mechanism that distributes the tasks automatically to one or more technical computing workers providing technical computing services. The technical computing worker performs technical computing of tasks and the results of the execution of tasks may be provided to the technical computing client.Type: GrantFiled: July 21, 2004Date of Patent: May 13, 2014Assignee: The MathWorks, Inc.Inventors: Matt Shawver, Jocelyn Luke Martin, Roy Lurie, Loren Dean, Cleve Moler, Eugene McGoldrick
-
Patent number: 8707281Abstract: One or more computer-readable media store executable instructions that, when executed by processing logic, perform parallel processing. The media store one or more instructions for initiating a single programming language, and identifying, via the single programming language, one or more data distribution schemes for executing a program. The media also store one or more instructions for transforming, via the single programming language, the program into a parallel program with an optimum data distribution scheme selected from the one or more identified data distribution schemes, and allocating the parallel program to two or more labs for parallel execution. The media further store one or more instructions for receiving one or more results associated with the parallel execution of the parallel program from the two or more labs, and providing the one or more results to the program.Type: GrantFiled: July 23, 2012Date of Patent: April 22, 2014Assignee: The MathWorks, Inc.Inventors: Piotr R. Luszczek, John N. Little, Jocelyn Luke Martin, Halldor N. Stefansson, Edric Ellis, Penelope L. Anderson, Brett Baker, Loren Dean, Roy E. Lurie
-
Patent number: 8707280Abstract: A computing device-implemented method includes receiving a program, analyzing and transforming the program, determining an inner context and an outer context of the program based on the analysis of the program, and allocating one or more portions of the inner context of the program to two or more labs for parallel execution. The method also includes receiving one or more results associated with the parallel execution of the one or more portions from the two or more labs, and providing the one or more results to the outer context of the program.Type: GrantFiled: June 29, 2012Date of Patent: April 22, 2014Assignee: The MathWorks, Inc.Inventors: Halldor N Stefansson, Brett Baker, Edric Ellis, Joseph F Hicklin, John N Little, Jocelyn Luke Martin, Piotr R Luszczek, Nausheen B Moulana, Loren Dean, Roy E. Lurie
-
Patent number: 8688765Abstract: A method and system is disclosed for providing a distributed technical computing environment for distributing technical computing tasks from a technical computing client to technical computing workers for execution of the tasks on one or more computers systems. Tasks can be defined on a technical computing client, and the tasks organized into jobs. The technical computing client can directly distribute tasks to one or more technical computing workers. Furthermore, the technical computing client can submit tasks, or jobs comprising tasks, to an automatic task distribution mechanism that distributes the tasks automatically to one or more technical computing workers providing technical computing services. The technical computing worker performs technical computing of tasks and the results of the execution of tasks may be provided to the technical computing client. Data associated with the tasks is managed by a programmable interface associated with a data storage repository.Type: GrantFiled: June 9, 2009Date of Patent: April 1, 2014Assignee: The MathWorks, Inc.Inventor: Jocelyn Luke Martin
-
Publication number: 20140007059Abstract: A device initiates a technical computing environment (TCE), and receives, via the TCE, a program command that permits the TCE to access a graphical processing unit that is remote to the device, where the program command permits the TCE to seamlessly transfer data to the remote GPU. The device transforms, via the TCE, the program command into a program command that is executable by the remote GPU, and provides the transformed program command to the remote GPU for execution. The device also receives, from the remote GPU, one or more results associated with execution of the transformed program command by the remote GPU, and utilizes the one or more results via the TCE.Type: ApplicationFiled: September 6, 2013Publication date: January 2, 2014Applicant: The MathWorkds, Inc.Inventors: Halldor N. STEFANSSON, Edric ELLIS, Jocelyn Luke MARTIN
-
Patent number: 8612980Abstract: A method, system and computer program product is disclosed for providing a distributed computing environment in which an arbitrary job manager or scheduler is able to be employed. In the distributed computing environment, a job is created in a host or client to include one or more technical computing tasks and submitted to the arbitrary scheduler in a portable format. Since the portable format of the job is independent of the platform structure of the scheduler, the schedule can handle the job regardless of the platform structure of the scheduler. The scheduler then transfers the job in the portable format to one or more remote workers. The present invention utilizes a portable format to submit the job to a scheduler and to distribute the job to remote workers so that any scheduler can receive and distribute the job to the remote workers.Type: GrantFiled: February 17, 2005Date of Patent: December 17, 2013Assignee: The MathWorks, Inc.Inventors: Jocelyn Luke Martin, Loren Dean
-
Patent number: 8533697Abstract: A device initiates a technical computing environment (TCE), and receives, via the TCE, a program command that permits the TCE to access a graphical processing unit that is remote to the device, where the program command permits the TCE to seamlessly transfer data to the remote GPU. The device transforms, via the TCE, the program command into a program command that is executable by the remote GPU, and provides the transformed program command to the remote GPU for execution. The device also receives, from the remote GPU, one or more results associated with execution of the transformed program command by the remote GPU, and utilizes the one or more results via the TCE.Type: GrantFiled: September 30, 2010Date of Patent: September 10, 2013Assignee: The MathWorks, Inc.Inventors: Halldor N. Stefansson, Edric Ellis, Jocelyn Luke Martin
-
Patent number: 8527973Abstract: A computing device-implemented method includes receiving a program created by a technical computing environment, analyzing the program, generating multiple program portions based on the analysis of the program, dynamically allocating the multiple program portions to multiple software units of execution for parallel programming, receiving multiple results associated with the multiple program portions from the multiple software units of execution, and providing the multiple results or a single result to the program.Type: GrantFiled: August 22, 2011Date of Patent: September 3, 2013Assignee: The MathWorks, Inc.Inventors: John N. Little, Joseph F. Hicklin, Jocelyn Luke Martin, Nausheen B. Moulana, Halldor N. Stefansson, Loren Dean, Roy E. Lurie, Stephen C. Johnson, Penelope L. Anderson, Michael E. Karr, Jason A. Kinchen