A system comprising: a memory comprising instructions; a graphics processing unit, GPU,; and one or more computer processors, wherein the instructions, when executed by the one or more computer processors, cause the one or more computer processors to perform operations comprising: collecting raw global positioning system, GPS, signals for a plurality of positions; storing in the memory the raw GPS signals for the plurality of positions; processing the raw GPS signals in batch mode to obtain acquisition data for the plurality of positions, the acquisition data comprising timestamps of the acquisition data, as well as code phases and Doppler shifts of each acquired satellite, the processing further comprising: identifying a plurality of tasks for parallel processing by the GPU, the plurality of tasks comprising identifying the Doppler shift and the code phases of each acquired satellite from visible satellite signals, the GPU performing the plurality of tasks in parallel by assigning each of the tasks to a core processor within the GPU; and combining results from performing the plurality of tasks to obtain the acquisition data; and transmitting the acquisition data to a server for calculating locations for the plurality of positions at the server, the server storing the locations and making the locations available for location-tracking applications. a memory comprising instructions; a graphics processing unit, GPU,; and one or more computer processors, wherein the instructions, when executed by the one or more computer processors, cause the one or more computer processors to perform operations comprising: collecting raw global positioning system, GPS, signals for a plurality of positions; storing in the memory the raw GPS signals for the plurality of positions; processing the raw GPS signals in batch mode to obtain acquisition data for the plurality of positions, the acquisition data comprising timestamps of the acquisition data, as well as code phases and Doppler shifts of each acquired satellite, the processing further comprising: identifying a plurality of tasks for parallel processing by the GPU, the plurality of tasks comprising identifying the Doppler shift and the code phases of each acquired satellite from visible satellite signals, the GPU performing the plurality of tasks in parallel by assigning each of the tasks to a core processor within the GPU; and combining results from performing the plurality of tasks to obtain the acquisition data; and transmitting the acquisition data to a server for calculating locations for the plurality of positions at the server, the server storing the locations and making the locations available for location-tracking applications. collecting raw global positioning system, GPS, signals for a plurality of positions; storing in the memory the raw GPS signals for the plurality of positions; processing the raw GPS signals in batch mode to obtain acquisition data for the plurality of positions, the acquisition data comprising timestamps of the acquisition data, as well as code phases and Doppler shifts of each acquired satellite, the processing further comprising: identifying a plurality of tasks for parallel processing by the GPU, the plurality of tasks comprising identifying the Doppler shift and the code phases of each acquired satellite from visible satellite signals, the GPU performing the plurality of tasks in parallel by assigning each of the tasks to a core processor within the GPU; and combining results from performing the plurality of tasks to obtain the acquisition data; and identifying a plurality of tasks for parallel processing by the GPU, the plurality of tasks comprising identifying the Doppler shift and the code phases of each acquired satellite from visible satellite signals, the GPU performing the plurality of tasks in parallel by assigning each of the tasks to a core processor within the GPU; and combining results from performing the plurality of tasks to obtain the acquisition data; and transmitting the acquisition data to a server for calculating locations for the plurality of positions at the server, the server storing the locations and making the locations available for location-tracking applications.